NdisGetHypervisorInfo 函数 (ndis.h)

重要说明  

从 Windows 10 版本 1703 开始,NdisGetHypervisorInfo 已弃用,不应使用。 建议驱动程序远离它,因为它在操作系统的未来版本中可能不可用。

驱动程序应改为按照虚拟机监控程序的说明来查询虚拟机监控程序状态和功能。 例如,Hyper-V 的说明记录在 顶级功能规范中。

NdisGetHypervisorInfo 函数返回有关系统上存在的虚拟机监控程序的信息。

语法

NDIS_STATUS NdisGetHypervisorInfo(
  [in, out] PNDIS_HYPERVISOR_INFO HypervisorInfo
);

参数

[in, out] HypervisorInfo

指向调用方分配 的NDIS_HYPERVISOR_INFO 结构的指针,该结构包含有关系统上存在的虚拟机监控程序的信息。

返回值

NdisGetHypervisorInfo 可以返回以下状态值之一:

返回代码 说明
NDIS_STATUS_SUCCESS
操作已成功完成。
NDIS_STATUS_BUFFER_TOO_SHORT
输入参数缓冲区的大小太小。

注解

NDIS 微型端口驱动程序调用 NdisGetHypervisorInfo 函数,以确定系统上是否存在虚拟机监控程序。

NdisGetHypervisorInfo 函数返回时, HypervisorInfo 参数包含指向 NDIS_HYPERVISOR_INFO 结构的指针。 此结构包含有关虚拟机监控程序是否存在的信息,以及从中调用此函数的分区类型。 NDIS_HYPERVISOR_INFO 结构通过以下方式提供此信息:

  • 如果存在虚拟机监控程序,则会在 Flags 成员中设置NDIS_HYPERVISOR_INFO_FLAG_HYPERVISOR_PRESENT标志。
  • 如果存在 Microsoft 虚拟机监控程序, PartitionType 成员将设置为以下值之一:
    • 如果从 Hyper-V 父分区中运行的管理操作系统调用 NdisGetHypervisorInfo 函数, 则 PartitionType 成员设置为 NdisHypervisorPartitionTypeMsHvParent
    • 如果从 Hyper-V 子分区中运行的来宾操作系统调用 NdisGetHypervisorInfo 函数,则 PartitionType 成员设置为 NdisHypervisorPartitionMsHvChild
  • 如果存在其他供应商的虚拟机监控程序, PartitionType 成员将设置为 NdisHypervisorPartitionTypeUnknown
注意驱动程序必须先初始化 NDIS_HYPERVISOR_INFO 结构的 Header 成员,然后才能调用 NdisGetHypervisorInfo 函数。
 

要求

要求
最低受支持的客户端 在 NDIS 6.0 及更高版本中受支持。
目标平台 通用
标头 ndis.h (包括 Ndis.h)
Library Ndis.lib
IRQL <= DISPATCH_LEVEL

另请参阅

NDIS_HYPERVISOR_INFO