我想转换与内核模式驱动程序(WDM驱动程序)交互的现有应用程序代码。对于IOCTL,我正在使用DeviceIoControl API。
为了将我的应用移植到UWP,我使用以下链接:https://docs.microsoft.com/en-us/cpp/porting/how-to-use-existing-cpp-code-in-a-universal-windows-platform-app?view=vs-2017。
按照链接中所述对项目属性进行更改后,由于找不到DeviceIoControl标识符,我遇到了错误。这是我面临的问题。是否有可用的示例应用程序/ API代替DeviceIoControl?
答案 0 :(得分:1)
您不能在UWP应用中使用DeviceIOControl
。您可以看到受支持的Win32 and COM API的列表,但这不是其中之一。 UWP应用程序的安全模型受到更严格的限制,使其更难以用作恶意软件矢量,因此您无法与任意内核模式驱动程序进行交互。
在特定情况下,您可以启用自定义功能并使用Windows.Devices.Custom API。参见CustomCapability sample。通常用于硬件支持。参见Hardware Support App (HSA): Steps for Driver Developers。
答案 1 :(得分:1)
实际上,我们在RS5的允许列表中添加了DeviceIoControl。您需要先将HANDLE发送到设备,这将需要进行两次更改
如果您要访问内置的设备定义的设备界面,则无法直接获得该设备的手柄。如果您的MSR访问驱动程序是pnp驱动程序,则可以使用上面的指南。