NdisDirectOidRequest 函式 (ndis.h)
NdisDirectOidRequest 函式會將直接 OID 要求轉送到基礎驅動程式,以查詢適配卡的功能或狀態,或設定適配卡的狀態。
語法
NDIS_STATUS NdisDirectOidRequest(
[in] NDIS_HANDLE NdisBindingHandle,
[in] PNDIS_OID_REQUEST OidRequest
);
參數
[in] NdisBindingHandle
NdisOpenAdapterEx 函式傳回的句柄,可識別系結上的目標迷你埠配接器。
[in] OidRequest
NDIS_OID_REQUEST 結構的指標,指定使用指定 之 OID_Xxx 程式代碼要求的作業,以查詢配接器的狀態或設定配接器的狀態。
傳回值
基礎驅動程式會決定 NdisDirectOidRequest 傳回哪些NDIS_STATUS_XXX 程序代碼,但通常是下列其中一個值:
傳回碼 | Description |
---|---|
|
要求作業已順利完成。 |
|
要求是以異步方式處理,而NDIS會呼叫呼叫者的當要求完成時,ProtocolDirectOidRequestComplete 函式。 |
|
在 OidRequest 上NDIS_OID_REQUEST結構化緩衝區的 Oid 成員中指定的OID_Xxx 程式代碼無效或不受基礎驅動程序支援。 |
|
在 OidRequest 之NDIS_OID_REQUEST結構化緩衝區的 InformationBufferLength 成員中指定的值不符合指定之OID_Xxx 程式代碼的需求。 如果信息緩衝區太小,BytesNeeded 成員會在從 NdisDirectOidRequest 傳回時包含 InformationBufferLength 的正確值。 |
|
在指定NDIS_OID_REQUEST結構中 於 InformationBuffer 提供的數據對於指定的 OID_Xxx 程式代碼而言無效。 |
|
基礎驅動程式不支援要求的作業。 若為 NdisDirectOidRequest,如果呼叫驅動程式尚未註冊 ,NDIS 也可以傳回此狀態 ProtocolDirectOidRequestComplete 函式 。 |
|
因為資源不足,所以無法滿足要求。 一般而言,這個傳回值表示嘗試配置記憶體失敗,但不一定表示稍後提交的相同要求將會因為相同原因而失敗。 |
|
基礎驅動程式嘗試執行要求的作業,通常是在 NIC 上設定,但失敗。 例如,嘗試設定太多多播位址可能會導致這個值傳回。 |
|
基礎驅動程式因為關閉作業正在進行中,所以要求作業失敗。 |
|
基礎迷你埠驅動程式目前無法滿足要求,因為它目前正在重設受影響的 NIC。 呼叫端的 ProtocolStatusEx 函式是或將會使用 NDIS_STATUS_RESET_START 呼叫,以指出重設正在進行中。 此傳回值不一定表示稍後提交的相同要求將會因為相同原因而失敗。 |
|
這個值通常是非特定預設值,當沒有更特定的NDIS_STATUS_Xxx 值導致基礎驅動程序失敗要求時,就會傳回。 |
備註
NdisDirectOidRequest 函式無法用於一般 OID 要求。 針對一般 OID 要求,請改用 NdisOidRequest 函式。 NdisDirectOidRequest 只能用於 NDIS 支援的 OID,以搭配直接 OID 介面使用。 例如,可以使用下列 OID:
OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA OID_TCP_TASK_IPSEC_OFFLOAD_V2_DELETE_SA OID_TCP_TASK_IPSEC_OFFLOAD_V2_UPDATE_SA通訊協定驅動程式必須配置足夠的記憶體,才能保存與指定 OID 相關聯的信息緩衝區。 驅動程式也必須在 OidRequest 參數配置和設定緩衝區,才能呼叫 NdisDirectOidRequest。 這兩個緩衝區都必須從非分頁集區配置,因為基礎驅動程式會在處理要求時於引發的 IRQL 執行。
NdisDirectOidRequest 會將要求轉送至基礎驅動程式,或處理要求本身。 如果下一個較低的驅動程式是 NDIS 中繼驅動程式,中繼驅動程式可以先使用自己的 OID 特定要求呼叫 NdisDirectOidRequest ,再完成原本提交較高層級驅動程式的要求。
呼叫 NdisDirectOidRequest 的驅動程序必須註冊 ProtocolDirectOidRequestComplete 函式 。
直接 OID 要求介面類似於一般 OID 要求介面。 如需發出一般要求的詳細資訊,請參閱 NdisOidRequest。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | NDIS 6.1 和更新版本支援。 |
目標平台 | 桌面 |
標頭 | ndis.h (包括 Ndis.h) |
程式庫 | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |