📄 所用控制代码.txt
字号:
1:IOCTL_USB_GET_NODE_INFORMATION
2:IOCTL_USB_GET_NODE_CONNECTION_INFORMATION
3:IOCTL_USB_GET_ROOT_HUB_NAME
4:IOCTL_USB_GET_NODE_CONNECTION_NAME
5:IOCTL_USB_GET_NODE_CONNECTION_DRIVERKEY_NAME
6:IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION
7:IOCTL_GET_HCD_DRIVERKEY_NAME
控制代码1:IOCTL_GET_HCD_DRIVERKEY_NAME
PUSB_HCD_DRIVERKEY_NAME driverKeyNameW;
DeviceIoControl(HCD,IOCTL_GET_HCD_DRIVERKEY_NAME,driverKeyNameW,nBytes,
driverKeyNameW,nBytes,&nBytes,NULL);
typedef struct _USB_HCD_DRIVERKEY_NAME {
ULONG ActualLength; /* OUTPUT */
/* NULL terminated unicode driverkeyname for hcd */
WCHAR DriverKeyName[1]; /* OUTPUT */
} USB_HCD_DRIVERKEY_NAME, *PUSB_HCD_DRIVERKEY_NAME;
控制代码2:IOCTL_USB_GET_ROOT_HUB_NAME
PUSB_ROOT_HUB_NAME rootHubNameW;
DeviceIoControl(HostController,IOCTL_USB_GET_ROOT_HUB_NAME,0,0,
&rootHubName,sizeof(rootHubName),&nBytes,NULL);
typedef struct _USB_ROOT_HUB_NAME {
ULONG ActualLength; /* OUTPUT */
/* NULL terminated unicode symbolic name for the root hub */
WCHAR RootHubName[1]; /* OUTPUT */
} USB_ROOT_HUB_NAME, *PUSB_ROOT_HUB_NAME;
控制代码3:IOCTL_USB_GET_NODE_INFORMATION
PUSBDEVICEINFO info;
DeviceIoControl(hHubDevice,IOCTL_USB_GET_NODE_INFORMATION,info->HubInfo,sizeof(USB_NODE_INFORMATION),
info->HubInfo,sizeof(USB_NODE_INFORMATION),&nBytes,NULL);
typedef struct
{
PUSB_NODE_INFORMATION HubInfo; // 目录信息,如果不是一个目录将为空
PCHAR HubName; // 目录名,如果不是一个目录将为空
PUSB_NODE_CONNECTION_INFORMATION ConnectionInfo; // 连接信息,如果是一个跟目录将为空
PUSB_DESCRIPTOR_REQUEST ConfigDesc; // 配置,如果是一个跟目录将为空
PSTRING_DESCRIPTOR_NODE StringDescs; // 字符串
} USBDEVICEINFO, *PUSBDEVICEINFO;//USB设备信息结构体
typedef struct _USB_NODE_INFORMATION {
USB_HUB_NODE NodeType; /* hub, mi parent */
union {
USB_HUB_INFORMATION HubInformation;
USB_MI_PARENT_INFORMATION MiParentInformation;
} u;
} USB_NODE_INFORMATION, *PUSB_NODE_INFORMATION;
控制代码4:IOCTL_USB_GET_NODE_CONNECTION_INFORMATION
PUSB_NODE_CONNECTION_INFORMATION connectionInfo;
DeviceIoControl(hHubDevice,IOCTL_USB_GET_NODE_CONNECTION_INFORMATION,connectionInfo,
nBytes,connectionInfo,nBytes,&nBytes,NULL);
typedef struct _USB_NODE_CONNECTION_INFORMATION {
ULONG ConnectionIndex;
USB_DEVICE_DESCRIPTOR DeviceDescriptor;
UCHAR CurrentConfigurationValue;
BOOLEAN LowSpeed;
BOOLEAN DeviceIsHub;
USHORT DeviceAddress;
ULONG NumberOfOpenPipes;
USB_CONNECTION_STATUS ConnectionStatus;
USB_PIPE_INFO PipeList[0];
} USB_NODE_CONNECTION_INFORMATION, *PUSB_NODE_CONNECTION_INFORMATION;
控制代码5:IOCTL_USB_GET_NODE_CONNECTION_DRIVERKEY_NAME
PUSB_NODE_CONNECTION_DRIVERKEY_NAME driverKeyNameW;
DeviceIoControl(Hub,IOCTL_USB_GET_NODE_CONNECTION_DRIVERKEY_NAME,&driverKeyName,
sizeof(driverKeyName),&driverKeyName,sizeof(driverKeyName),&nBytes,NULL);
typedef struct _USB_NODE_CONNECTION_DRIVERKEY_NAME {
ULONG ConnectionIndex; /* INPUT */
ULONG ActualLength; /* OUTPUT */
/* unicode name for the devnode. */
WCHAR DriverKeyName[1]; /* OUTPUT */
} USB_NODE_CONNECTION_DRIVERKEY_NAME, *PUSB_NODE_CONNECTION_DRIVERKEY_NAME;
控制代码6:IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION
PUSB_DESCRIPTOR_REQUEST configDescReq;
DeviceIoControl(hHubDevice,IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION,configDescReq,
nBytes,configDescReq,nBytes,&nBytesReturned,NULL);
typedef struct _USB_DESCRIPTOR_REQUEST {
ULONG ConnectionIndex;
struct {
UCHAR bmRequest;
UCHAR bRequest;
USHORT wValue;
USHORT wIndex;
USHORT wLength;
} SetupPacket;
UCHAR Data[0];
} USB_DESCRIPTOR_REQUEST, *PUSB_DESCRIPTOR_REQUEST;
控制代码7:IOCTL_USB_GET_NODE_CONNECTION_NAME
PUSB_NODE_CONNECTION_NAME extHubNameW;
DeviceIoControl(Hub,IOCTL_USB_GET_NODE_CONNECTION_NAME,&extHubName,
sizeof(extHubName),&extHubName,sizeof(extHubName),&nBytes,NULL);
typedef struct _USB_NODE_CONNECTION_NAME {
ULONG ConnectionIndex; /* INPUT */
ULONG ActualLength; /* OUTPUT */
/* unicode symbolic name for this node if it is a hub or parent driver
null if this node is a device. */
WCHAR NodeName[1]; /* OUTPUT */
} USB_NODE_CONNECTION_NAME, *PUSB_NODE_CONNECTION_NAME;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -