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 写入句柄,用于标识调用方与 OpenParameters的 AdapterName 成员中指定的微型端口适配器之间的绑定。 调用方在对 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,则调用方不得使用 NdisBindingHandleOpenParameters 中的 SelectedMediumIndex 成员的值,直到 NDIS 调用 ProtocolOpenAdapterCompleteEx 函数。

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

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

要求

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

另请参阅

NDIS_OPEN_PARAMETERS

NdisRegisterProtocolDriver

ProtocolBindAdapterEx

ProtocolOpenAdapterCompleteEx