DMDLL_USBInterruptTransfer_LL
해당하는 USB장치측으로 Interrupt Out/In 요청명령어를 전송한다
Description
int DMDLL_USBInterruptTransfer_LL(
IN DMHANDLE PipeHandle,
IN ULONG TransferFlags,
IN int Length,
IN OUT UCHAR *pData,
OUT USHORT *pResult,
IN int msecTimeout
)
Parameters
PipeHandle
작업중이던 디바이스 핸들, DMDLL_OpenDeviceForInterfaceDeviceStack( PipeNumber != -1 )함수를 통해서 얻은 핸들(Pipe)이어야 한다. 인터럽트 파이프핸들이어야 한다.
TransferFlags
USB.H 에서 정의한 Flags
#define USBD_TRANSFER_DIRECTION_OUT 0
#define USBD_TRANSFER_DIRECTION_IN 1
#define USBD_SHORT_TRANSFER_OK 2
Length
요청하는 전송바이트수(읽기/쓰기)
pData
Transfer에 사용될 , 읽기(데이타를 담을 버퍼), 쓰기(데이타를 담고 있는 버퍼) 용도로 사용된다(양방향)
pResult
실제로 읽혀지거나 기록된 Data버퍼의 데이타수(바이트단위)
msecTimeout
타임아웃값. 밀리초단위.
Return Values
return int
작업이 성공할 경우 DMSTAT_SUCCESS 리턴
Changelog
Examples
int nRet = 0;
int Length = 0x1000; // example, 4KBytes
int msecTimeout = 1000; // 1s
USHORT Result = 0;
char Data[0x1000];
// Data[]의 내용이 준비되어 있는 상태에서,
nRet = DMDLL_USBInterruptTransfer_LL(
PipeHandle,
USBD_TRANSFER_DIRECTION_OUT,
Length,
Data,
&Result ,
msecTimeout
); // msecTimeout 시간동안 인터럽트 OUT전송이 완료되기를 기다린다