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전송이 완료되기를 기다린다

results matching ""

    No results matching ""