共用方式為


NdisOidRequest 函式 (ndis.h)

NdisOidRequest 函式會將要求轉送給基礎驅動程式,以查詢配接器的功能或狀態,或設定配接器的狀態。

語法

NDIS_STATUS NdisOidRequest(
  [in] NDIS_HANDLE       NdisBindingHandle,
  [in] PNDIS_OID_REQUEST OidRequest
);

參數

[in] NdisBindingHandle

NdisOpenAdapterEx 函式所傳回的句柄,可識別系結上的目標配接器。

[in] OidRequest

NDIS_OID_REQUEST 結構的指標,指定使用指定之 OID_XXX 程式代碼要求的作業,以查詢配接器的狀態,或設定配接器的狀態。

傳回值

基礎驅動程式會決定 NdisOidRequest 傳回哪些NDIS_STATUS_XXX 程式代碼,但通常是下列其中一個值:

傳回碼 Description
NDIS_STATUS_SUCCESS
要求作業已順利完成。
NDIS_STATUS_PENDING
要求是以異步方式處理,而NDIS會呼叫呼叫者的當要求完成時,ProtocolOidRequestComplete 函式。
NDIS_STATUS_INVALID_OID
基礎驅動程式無效或不支援在 OidRequest 上NDIS_OID_REQUEST結構化緩衝區的 Oid 成員中指定的 OID_XXX 程式代碼。
NDIS_STATUS_INVALID_LENGTH或NDIS_STATUS_BUFFER_TOO_SHORT
在 OidRequest 之NDIS_OID_REQUEST結構化緩衝區的 InformationBufferLength 成員中指定的值不符合指定之OID_XXX 程式代碼的需求。 如果信息緩衝區太小,BytesNeeded 成員會在從 NdisOidRequest 傳回時包含 InformationBufferLength 的正確值。
NDIS_STATUS_INVALID_DATA
給定NDIS_OID_REQUEST結構中 InformationBuffer 提供的數據對於指定的OID_XXX 程式代碼無效。
NDIS_STATUS_NOT_SUPPORTED或NDIS_STATUS_NOT_RECOGNIZED
基礎驅動程式不支援要求的作業。
NDIS_STATUS_RESOURCES
因為資源不足而無法滿足要求。 通常,這個傳回值表示嘗試配置記憶體失敗,但不一定表示相同要求稍後提交,將會因為相同的原因而失敗。
NDIS_STATUS_NOT_ACCEPTED
基礎驅動程式嘗試執行要求的作業,通常是在 NIC 上設定,但失敗。 例如,嘗試設定太多多播位址可能會導致這個值傳回。
NDIS_STATUS_CLOSING或NDIS_STATUS_CLOSING_INDICATING
基礎驅動程式因為關閉作業正在進行中,所以要求作業失敗。
NDIS_STATUS_RESET_IN_PROGRESS
基礎迷你埠驅動程式目前無法滿足要求,因為它目前正在重設受影響的 NIC。 呼叫端的 ProtocolStatusEx 函式是或將會使用 NDIS_STATUS_RESET_START 呼叫,以指出重設正在進行中。 此傳回值不一定表示稍後提交的相同要求將會因為相同原因而失敗。
NDIS_STATUS_FAILURE
這個值通常是非特定的預設值,當任何更特定的NDIS_STATUS_XXX 都會導致基礎驅動程序失敗要求時傳回。

備註

通訊協定驅動程式必須配置足夠的記憶體,才能保存與指定 OID 相關聯的信息緩衝區。 驅動程式也必須在 OidRequest 配置和設定緩衝區,才能呼叫 NdisOidRequest。 這兩個緩衝區都必須從非分頁集區配置,因為基礎驅動程式會在處理要求時於引發的 IRQL 執行。

NdisOidRequest 會將要求轉送至基礎驅動程式,或處理要求本身。 如果下一個較低的驅動程式是 NDIS 中繼驅動程式,它可以先使用自己的 OID 特定要求呼叫 NdisOidRequest ,再完成高層級驅動程式最初提交的要求。

傳回的某些錯誤是可復原的,包括下列各項:

也就是說,驅動程式可以適當地修改 OidRequest 上的封包,以更正 OID_XXX 程式代碼或 資訊Buffer 緩衝區的大小或內容,並將要求封包重新提交至 NdisOidRequest。 如果原始呼叫指出進行中重設,或資源不足,這可能會在重新提交 至 NdisOidRequest 時滿足相同的封包,以免執行該要求。

NDIS 連結庫會維護基礎迷你埠驅動程序的系結。 如果指定的 OID 與系統提供篩選連結庫的系統定義媒體類型相關聯,NDIS 可以傳回系結特定查詢的資訊。

如需一般和媒體特定 OID 及其各自的相關信息緩衝區的詳細資訊,請參閱 NDIS OID。

規格需求

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

另請參閱

NDIS_OID_REQUEST

NdisOpenAdapterEx

ProtocolOidRequestComplete

ProtocolStatusEx