IOControlCode 请求 UShort,但我们的是 DWORD

IOControlCode asks for UShort, but ours is DWORD

我正在为 Windows10 中的通用应用创建自定义设备。我们以前的应用(在没有通用的情况下运行 XP、7 和 8)一直使用驱动程序控制代码作为 DWORD , 但 Windows.Devices.Custom 命名空间使用函数 IOControlCode() 使用 ushort.

我们常用的功能是:

DeviceIoControl(HANDLE, DWORD, void*, DWORD,
            void*, DWORD, DWORD, NULL);

查看新文档here

是否有其他替代方法或解决方法?

IOControlCode() 参数是函数和设备类型。这些构成一个 IOControlCode,并正确分配 UShorts。

我发布的 DeviceIOControl 函数不是我应该查看的函数。等效函数实际上是

定义IOCTL_CTL_CODE(代码)CTL_CODE(FILE_DEVICE_UNKNOWN,代码|0x0100,METHOD_BUFFERED,FILE_ANY_ACCESS)

其中 File_Device_Unknown 在 DDK 中给出为 0x00000022,代码|0x0100 是函数。