初始化支持 NDK 的微型端口驱动程序
支持网络直接内核 (NDK) 的微型端口驱动程序的初始化方式与其他微型端口驱动程序相同。 但是,它还必须注册其他 NDKPI 入口点。
DriverEntry 函数
每个微型端口驱动程序的 DriverEntry 函数初始化 NDIS_MINIPORT_DRIVER_CHARACTERISTICS 结构,并将其传递给 NdisMRegisterMiniportDriver ,如以下页面所述:
初始化 NDIS_MINIPORT_DRIVER_CHARACTERISTICS 结构时,支持 NDK 的微型端口驱动程序必须执行以下操作:
在 OidRequestHandler 成员中,微型端口驱动程序必须注册支持以下项的 MiniportOidRequest 函数:
所有 NDKPI OID。
一般情况下,对于 NDIS 微型端口驱动程序是必需的任何 OID。
注意 有关这些必需 OID 的列表,请参阅 微型端口驱动程序的必需 OID。
在 SetOptionsHandler 成员中,微型端口驱动程序必须注册 MiniportSetOptions 函数,如 配置可选微型端口驱动程序服务和以下 MiniportSetOptions 函数部分中所述。
MiniportSetOptions 函数
NDIS 在微型端口驱动程序的 DriverEntry 函数返回后立即调用 MiniportSetOptions 函数。 MiniportSetOptions 函数是在微型端口驱动程序调用 NdisMRegisterMiniportDriver 的上下文中调用的。
在其 MiniportSetOptions 函数中,支持 NDK 的微型端口驱动程序注册其 NDK 功能,并注册以下所需的 NDKPI 函数入口点,如 配置可选微型端口驱动程序服务中所述:
OpenNDKAdapterHandler (OPEN_NDK_ADAPTER_HANDLER)
CloseNDKAdapterHandler (CLOSE_NDK_ADAPTER_HANDLER)
若要为这些函数注册 NDKPI 入口点,微型端口驱动程序的 MiniportSetOptions 函数必须执行以下操作:
初始化 NDIS_NDK_PROVIDER_CHARACTERISTICS 结构。
注意 请特别注意 标头 成员说明。 微型端口驱动程序必须正确设置此成员,才能将自身标识为支持 NDK 的微型端口驱动程序。
将函数入口点存储在结构的 OpenNDKAdapterHandler 和 CloseNDKAdapterHandler 成员中。
调用 NdisSetOptionalHandlers 函数,在 OptionalHandlers 参数中传递 结构。