DMDLL_USBFeature_LL

해당하는 USB장치측으로 Feature명령어를 전송한다


Description

int DMDLL_USBFeature_LL( 
    IN DMHANDLE MasterHandle,
    IN USHORT   Op,
    IN USHORT   FeatureSelector,
    IN USHORT   Index
)

Parameters

MasterHandle
    작업중이던 디바이스 핸들, DMDLL_OpenDeviceForInterfaceDeviceStack( PipeNumber = -1 )함수를 통해서 얻은 핸들(Master)이어야 한다
Op
    USB.H 에서 정의한 명령어
    #define URB_FUNCTION_SET_FEATURE_TO_DEVICE           0x000D
    #define URB_FUNCTION_SET_FEATURE_TO_INTERFACE        0x000E
    #define URB_FUNCTION_SET_FEATURE_TO_ENDPOINT         0x000F
    #define URB_FUNCTION_CLEAR_FEATURE_TO_DEVICE         0x0010
    #define URB_FUNCTION_CLEAR_FEATURE_TO_INTERFACE      0x0011
    #define URB_FUNCTION_CLEAR_FEATURE_TO_ENDPOINT       0x0012
FeatureSelector
    USB 표준스팩에서 정의한 값
    #define ENDPOINT_HALT            0
    #define DEVICE_REMOTE_WAKEUP    1
    #define TEST_MODE                2
Index
    USB 표준스팩에서 정의한 값(FeatureSelector에 의해서 의미가 결정됨)

Return Values

return  int
    작업이 성공할 경우 DMSTAT_SUCCESS 리턴

Changelog


Examples

int nRet = 0;
USHORT FeatureSelector = 0; // ENDPOINT_HALT
USHORT Index = nEndpointAddress;

nRet = DMDLL_USBFeature_LL(
        MasterHandle, 
        URB_FUNCTION_CLEAR_FEATURE_TO_ENDPOINT,
        FeatureSelector ,
        Index 
    ); // Stall 된 엔드포인트의 상태를 클리어시킨다

results matching ""

    No results matching ""