NdisOpenAdapterEx 函数 (ndis.h)

协议驱动程序从其 ProtocolBindAdapterEx 函数调用 NdisOpenAdapterEx 函数,以在协议驱动程序和基础驱动程序之间设置绑定。

语法

NDIS_STATUS NdisOpenAdapterEx(
  [in]  NDIS_HANDLE           NdisProtocolHandle,
  [in]  NDIS_HANDLE           ProtocolBindingContext,
  [in]  PNDIS_OPEN_PARAMETERS OpenParameters,
  [in]  NDIS_HANDLE           BindContext,
  [out] PNDIS_HANDLE          NdisBindingHandle
);

参数

[in] NdisProtocolHandle

返回的句柄 NdisRegisterProtocolDriver 函数。

[in] ProtocolBindingContext

调用方提供的上下文区域的句柄,协议驱动程序在其中维护此绑定的状态信息。

[in] OpenParameters

指向调用方设置 的NDIS_OPEN_PARAMETERS 结构的指针。

[in] BindContext

标识绑定操作的 NDIS 上下文区域的句柄。 NDIS 将此句柄传递给 ProtocolBindAdapterEx 函数的 BindContext 参数。

[out] NdisBindingHandle

指向调用方提供的变量的指针。 NDIS 在 NdisBindingHandle 中写入一个句柄,该句柄标识调用方与 OpenParametersAdapterName 成员中指定的微型端口适配器之间的绑定。 调用方在对 NdisXxx 函数的后续调用中使用此句柄。

返回值

NdisOpenAdapterEx 返回以下状态值之一:

返回代码 说明
NDIS_STATUS_SUCCESS
NdisOpenAdapterEx 成功完成了打开操作。
NDIS_STATUS_PENDING
NdisOpenAdapterEx 未完成打开操作。 NDIS 稍后调用协议驱动程序的 ProtocolOpenAdapterCompleteEx 函数,用于完成打开操作。
NDIS_STATUS_RESOURCES
NdisOpenAdapterEx 由于资源不足而失败。
NDIS_STATUS_ADAPTER_NOT_FOUND
NdisOpenAdapterEx 失败,因为找不到 OpenParametersAdapterName 成员中指定的微型端口适配器。
NDIS_STATUS_UNSUPPORTED_MEDIA
NdisOpenAdapterEx 失败,因为在 OpenParametersMediumArray 成员中指定的数组不包含 NDIS 或基础驱动程序支持的介质类型。
NDIS_STATUS_FAILURE
NdisOpenAdapterEx 由于上述列表中的原因以外的原因而失败。

注解

协议驱动程序必须从其 ProtocolBindAdapterEx 函数调用 NdisOpenAdapterEx 。 NDIS 无法尝试在 ProtocolBindAdapterEx 的上下文之外调用 NdisOpenAdapterEx

如果 NdisOpenAdapterEx 返回NDIS_STATUS_PENDING,则在 NDIS 调用 之前,调用方不得使用 NdisBindingHandle 中的值和 OpenParameters 上的 SelectedMediumIndex 成员 ProtocolOpenAdapterCompleteEx 函数。

AdapterName 中的字符串必须仅在 NdisOpenAdapterEx 返回之前保持有效。 因此,如果 NdisOpenAdapterEx 返回NDIS_STATUS_PENDING,则驱动程序不需要在 NdisOpenAdapterEx 返回后继续保留此字符串。

打开操作成功完成后,调用方可以在后续调用 Ndis Xxx 函数时使用 NDIS 在 NdisBindingHandle 中返回的值。 调用方可以使用 OpenParameters 参数的 SelectedMediumIndex 成员来确定它应如何与基础驱动程序交互。

要求

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

另请参阅

NDIS_OPEN_PARAMETERS

NdisRegisterProtocolDriver

ProtocolBindAdapterEx

ProtocolOpenAdapterCompleteEx