DMDLL_USBBulkTransfer_LL

해당하는 USB장치측으로 Bulk Out/In 요청명령어를 전송한다


Description

int DMDLL_USBBulkTransfer_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
    Synchronous Transfer에서만 사용되는 타임아웃값. 밀리초단위.

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_USBBulkTransfer_LL(
                PipeHandle, 
                USBD_TRANSFER_DIRECTION_OUT,
                Length,
                Data,
                &Result ,
                msecTimeout
                ); // msecTimeout 시간동안 벌크 OUT전송이 완료되기를 기다린다

results matching ""

    No results matching ""