NdisMRegisterMiniportDriver 函数 (ndis.h)

微型端口驱动程序调用 NdisMRegisterMiniportDriver 函数,以将 MiniportXxx 入口点注册到 NDIS,作为初始化的第一步。

语法

NDIS_STATUS NdisMRegisterMiniportDriver(
  [in]           PDRIVER_OBJECT                        DriverObject,
  [in]           PUNICODE_STRING                       RegistryPath,
  [in, optional] NDIS_HANDLE                           MiniportDriverContext,
  [in]           PNDIS_MINIPORT_DRIVER_CHARACTERISTICS MiniportDriverCharacteristics,
  [out]          PNDIS_HANDLE                          NdisMiniportDriverHandle
);

参数

[in] DriverObject

指向微型端口驱动程序在其 DriverEntry 例程中通过 Argument1 参数接收的不透明驱动程序对象的指针 (请参阅 NDIS 微型端口驱动程序的 DriverEntry) 。

[in] RegistryPath

指向微型端口驱动程序在其 DriverEntry 例程中的 Argument2 参数处接收的不透明注册表路径的指针。

[in, optional] MiniportDriverContext

驱动程序分配的上下文区域的句柄,驱动程序在其中维护状态和配置信息。

[in] MiniportDriverCharacteristics

指向 的指针 NDIS_MINIPORT_DRIVER_CHARACTERISTICS 调用方初始化的结构。

[out] NdisMiniportDriverHandle

指向调用方提供的句柄变量的指针。 NDIS 将唯一标识此驱动程序的句柄写入此变量。 驱动程序必须保存此句柄,以便在后续 的 NdisXxx 函数调用中使用。

返回值

NdisMRegisterMiniportDriver 返回以下状态值之一:

返回代码 说明
NDIS_STATUS_SUCCESS

NdisMRegisterMiniportDriver 已成功注册微型端口驱动程序。

NDIS_STATUS_BAD_CHARACTERISTICS
对于在 MiniportDriverCharacteristics 结构中的 MajorNdisVersion 成员中指定的 NDIS 版本,CharacteristicsLength 参数不正确。
NDIS_STATUS_BAD_VERSION
在特征结构中指定的 MajorNdisVersionMinorNdisVersion 无效。
NDIS_STATUS_RESOURCES
资源(可能内存)不足,导致 NDIS 无法注册调用方。
NDIS_STATUS_FAILURE
这是默认错误状态,在上述任何错误都未导致注册失败时返回。

注解

NDIS 驱动程序从其 DriverEntry 例程调用 NdisMRegisterMiniportDriver。 有关详细信息,请参阅 NDIS 微型端口驱动程序的 DriverEntry

每个微型端口驱动程序通过设置特征结构和调用 NdisMRegisterMiniportDriver 来导出一组标准的 MiniportXxx 函数。 NDIS 将特征结构复制到 NDIS 内部存储。 因此,在注册后,驱动程序无法更改其 MiniportXxx 入口点。

若要注册其虚拟微型端口接口,NDIS 中间驱动程序必须使用 MiniportDriverCharacteristics 的结构中设置的 NDIS_INTERMEDIATE_DRIVER 标志调用 NdisMRegisterMiniportDriver。 具有 WDM 下边缘的 NDIS 驱动程序必须调用 NdisMRegisterMiniportDriver ,并在 MiniportDriverCharacteristics 的结构中设置NDIS_WDM_DRIVER标志。

驱动程序可以注册为组合的微型端口驱动程序和中间驱动程序。 为了注册其物理微型端口驱动程序,微型端口中间驱动程序使用适当的参数调用 NdisMRegisterMiniportDriver ,就像对任何微型端口驱动程序一样。 为了注册其虚拟微型端口接口,驱动程序再次调用 NdisMRegisterMiniportDriver ,但在 MiniportDriverCharacteristics 参数中设置了NDIS_INTERMEDIATE_DRIVER标志。

为了使微型端口驱动程序能够注册可选服务,NDIS 在 NdisMRegisterMiniportDriver 的上下文中调用 MiniportSetOptions 函数。

在驱动程序调用 NdisMRegisterMiniportDriver 后,驱动程序应准备好在 DriverEntry 返回后随时在 MiniportDriverCharacteristics 参数中指定的 MiniportInitializeEx 函数中回调该驱动程序。

如果在 NdisMRegisterMiniportDriver 成功返回后 DriverEntry 中发生错误,驱动程序必须调用DriverEntry 返回之前的 NdisMDeregisterMiniportDriver 函数。 如果 DriverEntry 成功,驱动程序必须从其 MiniportDriverUnload 函数调用 NdisMDeregisterMiniportDriver

要求

要求
最低受支持的客户端 在 NDIS 6.0 及更高版本中受支持。
目标平台 通用
标头 ndis.h (包括 Ndis.h)
Library Ndis.lib
IRQL PASSIVE_LEVEL
DDI 符合性规则 Irql_Miniport_Driver_Function (ndis)

另请参阅

初始化微型端口驱动程序

DriverEntry

MiniportDriverUnload

MiniportInitializeEx

MiniportSetOptions

NDIS_MINIPORT_DRIVER_CHARACTERISTICS NdisMDeregisterMiniportDriver