⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 所用控制代码.txt

📁 USB容量获取用DeviceIoControl得到U盘物理参数!
💻 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 + -