共用方式為


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 要求之作業, 程式代碼來查詢配接器的狀態,或設定配接器的狀態。

傳回值

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

傳回碼 描述
NDIS_STATUS_SUCCESS
要求作業已順利完成。
NDIS_STATUS_PENDING
要求是以異步方式處理,而NDIS會呼叫呼叫端的當要求完成時, ProtocolOidRequestComplete 函式。
NDIS_STATUS_INVALID_OID
在 OidRequest OidRequestOid 成員中指定的 NDIS_OID_REQUESTOID_XXX 程式代碼無效或不受基礎驅動程序支援。
NDIS_STATUS_INVALID_LENGTH 或NDIS_STATUS_BUFFER_TOO_SHORT
InformationBufferLength OidRequest 中NDIS_OID_REQUEST結構化 緩衝區成員中指定的值不符合指定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 中繼驅動程式,它可以呼叫 NdisOidRequest,並具有自己的 OID 特定要求,再完成較高層級驅動程式最初提交的要求。

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

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

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

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

要求

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

另請參閱

NDIS_OID_REQUEST

NdisOpenAdapterEx

ProtocolOidRequestComplete

ProtocolStatusEx