使用 wmi 触发 NDIS 驱动程序中的查询 OID
Using wmi to trigger query OIDs in NDIS driver
我想在 cs 中进行 wmi 查询以触发 NDIS OID。
例如,要检查硬件状态 (OID_GEN_HARDWARE_STATUS) 我可以使用 ManagementObjectSearcher("root\WMI", "SELECT * FROM MSNDIS_HardwareStatus")
我需要提出一些其他请求,但我找不到任何方法来找到给定 OID 的 wmi class 名称(假设它是 OID_802_3_RCV_OVERRUN,没有任何明显的关系,如 OID_GEN_HARDWARE_STATUS -> MSNDIS_HardwareStatus 为它,至少我还没有找到)。
如何找到 wmi class 名称和 NDIS OID 之间的关系?有相关文档吗?
您引用的具体示例 OID_802_3_RCV_OVERRUN
没有对应的 WMI class。如果您习惯使用内核调试器,这里有一种方法可以证明这一点。
- 运行 内核调试器命令
!ndiskd.miniport -wmi <someHandle>
- 在文本输出中搜索 "OID_802_3_RCV_OVERRUN"
- 没有匹配项,因此微型端口不会将该 OID 暴露给 WMI
如果您不想使用内核调试器,或者只是想查看更多示例,here's an article I wrote on how to inspect the relationship between WMI classes and OIDs。
我想在 cs 中进行 wmi 查询以触发 NDIS OID。
例如,要检查硬件状态 (OID_GEN_HARDWARE_STATUS) 我可以使用 ManagementObjectSearcher("root\WMI", "SELECT * FROM MSNDIS_HardwareStatus")
我需要提出一些其他请求,但我找不到任何方法来找到给定 OID 的 wmi class 名称(假设它是 OID_802_3_RCV_OVERRUN,没有任何明显的关系,如 OID_GEN_HARDWARE_STATUS -> MSNDIS_HardwareStatus 为它,至少我还没有找到)。
如何找到 wmi class 名称和 NDIS OID 之间的关系?有相关文档吗?
您引用的具体示例 OID_802_3_RCV_OVERRUN
没有对应的 WMI class。如果您习惯使用内核调试器,这里有一种方法可以证明这一点。
- 运行 内核调试器命令
!ndiskd.miniport -wmi <someHandle>
- 在文本输出中搜索 "OID_802_3_RCV_OVERRUN"
- 没有匹配项,因此微型端口不会将该 OID 暴露给 WMI
如果您不想使用内核调试器,或者只是想查看更多示例,here's an article I wrote on how to inspect the relationship between WMI classes and OIDs。