IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 Constant Val

IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 Constant Value

本文关键字:EX V2 Val INFORMATION Constant CONNECTION USB GET NODE IOCTL      更新时间:2023-10-16

我正在研究调用WinAPI的代码,特别是DeviceIoControl。它需要一个 IoControlCode,对于以下控制代码如下:

IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX = 0x220448

但是,对我来说,能够准确地检索USB协议(即Usb11,Usb20或Usb30)很重要,为此我需要调用IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2。我无法找出我应该传递给DeviceIoControl的常量值是什么。我已经在常量部分下查看了 pinvoke.net,他们没有关于这个新调用和随附结构的文档。

有人可以教育我在哪里可以找到这个常量值吗?

谢谢!

如果您不想挖掘标头并解码CTL_CODE宏打开的 Visual Studio,请创建一个C++控制台应用程序并执行以下操作:

#include <Windows.h>
#include <iostream>
#include <usbioctl.h>
using namespace std;
int main()
{
    cout << "0x" << hex << IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 << endl; 
    // Output: 0x22045c
    return 0;
}

要偷懒。让编译器告诉您值是什么。

在 usbioctl.h 和 usbiodef.h 中,Windows 工具包包含\共享文件夹:

#define IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2  
                                CTL_CODE(FILE_DEVICE_USB,  
                                    USB_GET_NODE_CONNECTION_INFORMATION_EX_V2,  
                                    METHOD_BUFFERED,  
                                    FILE_ANY_ACCESS)
#define USB_GET_NODE_CONNECTION_INFORMATION_EX_V2   279
#define FILE_DEVICE_USBEX               0x00000049