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 된 엔드포인트의 상태를 클리어시킨다