为 WinXPe 编写 NDIS 5.1 驱动程序。除了正常的 NDIS 发送/接收功能外,驱动程序还需要为用户进程提供一些离散的 IO 值,大概是通过一组自定义 OID。网络上的信息表明 IOCTL_NDISUIO_OPEN_DEVICE 然后 IOCTL_NDISUIO_QUERY_OID_VALUE 将是完美的,但这些功能似乎仅限于 Windows CE 而不是 WinXPe。CreateFile 到“\\.\\NdisUio”成功,但 IOCTL_NDISUIO_OPEN_DEVICE 失败,代码 (50)“不支持请求”。此外,我不得不作弊只是为了让 nuiouser.h 进入我的项目,因为它不适用于常规 SDK。WMI 似乎没有帮助,因为 WMI 似乎只支持“标准”参数,而不支持自定义参数。
如有必要,我相信我可以在我的 NDIS 驱动程序中实现 IoCreateDevice 和 IoCreateSymbolicLink,然后使自定义 IOCTL 可用于用户进程。但如果可能的话,我宁愿走 OID 路线。
WinXPe 用户进程能否执行 NDIS OID 查询?