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 會傳回下列其中一個狀態值:

傳回碼 Description
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 傳回之後繼續保留此字串。

開啟作業成功完成之後,呼叫端就可以在後續呼叫 NdisXxx 函式中使用 NdisBindingHandle 中傳回的 NDIS 值。 呼叫端可以使用 OpenParameters 參數的 SelectedMediumIndex 成員來判斷它應該如何與基礎驅動程序互動。

規格需求

需求
最低支援的用戶端 NDIS 6.0 和更新版本支援。
目標平台 桌面
標頭 ndis.h (包括 Ndis.h)
程式庫 Ndis.lib
IRQL PASSIVE_LEVEL
DDI 合規性規則 Irql_Protocol_Driver_Function (ndis)

另請參閱

NDIS_OPEN_PARAMETERS

NdisRegisterProtocolDriver

ProtocolBindAdapterEx

ProtocolOpenAdapterCompleteEx