從 NDIS 通訊協定驅動程式產生 OID 要求
為了產生基礎驅動程式的 OID 要求,通訊協定會呼叫 NdisOidRequest 函式。
下圖說明源自通訊協定驅動程式的 OID 要求。
通訊協定驅動程式呼叫 NdisOidRequest 函式之後,NDIS 會呼叫下一個基礎驅動程式的要求函式。 如需迷你埠驅動程式如何處理 OID 要求的詳細資訊,請參閱配接器 OID 要求。 如需篩選驅動程式如何處理 OID 要求的詳細資訊,請參閱 篩選模組 OID 要求。
若要同步完成,NdisOidRequest 會傳回NDIS_STATUS_SUCCESS或錯誤狀態。 若要以異步方式完成,NdisOidRequest 會傳回NDIS_STATUS_PENDING。
如果 NdisOidRequest 傳回NDIS_STATUS_PENDING,NDIS 會在基礎驅動程式完成 OID 要求之後呼叫 ProtocolOidRequestComplete 函式。 在此情況下,NDIS 會將請求的結果在 ProtocolOidRequestComplete的 OidRequest 參數中傳遞。 NDIS 會在 ProtocolOidRequestComplete 的 Status 參數中傳遞請求的最終狀態。
如果 NdisOidRequest 傳回 NDIS_STATUS_SUCCESS,它會在 OidRequest 參數中的 NDIS_OID_REQUEST 結構中傳回查詢要求的結果。 在此情況下,NDIS 不會呼叫 ProtocolOidRequestComplete 函式。
若要判斷基礎驅動程式成功處理的資訊,發出 OID 要求的通訊協定驅動程式必須在 OID 要求傳回之後,檢查 NDIS_OID_REQUEST 結構中 SupportedRevision 成員中的值。 如需更詳細的 NDIS 版本資訊,請參閱 指定 NDIS 版本資訊。
如果基礎驅動程式應該將 OID 要求與後續的狀態指示產生關聯,通訊協定驅動程式應該在NDIS_OID_REQUEST結構中設定 RequestId 成員。 當基礎驅動程式發出狀態指示時,它會將 NDIS_STATUS_INDICATION 結構中的 RequestId 成員設定為 OID 要求中提供的值。
當系結處於 重新啟動、執行、暫停或 暫停 狀態時,驅動程式可以呼叫 NdisOidRequest。