CoNDIS 通訊協定驅動程式,無論是用戶端或呼叫管理員,都可以查詢或設定迷你埠驅動程式和其他通訊協定驅動程式的作業參數。 CoNDIS 通訊協定驅動程式也可以在迷你埠呼叫管理員中查詢或設定資訊。 如需 OID 要求和 MCM 的詳細資訊,請參閱 CoNDIS MCM OID 要求。
為了產生基礎驅動程式的 OID 要求,通訊協定驅動程式會呼叫 NdisCoOidRequest 函式,並將位址系列 AF 句柄在 NdisAfHandle 參數設定為 NULL。 為了向另一個 CoNDIS 通訊協定驅動程式發出 OID 要求,通訊協定驅動程式會呼叫 NdisCoOidRequest 並提供有效的 AF 控制代碼。
在通訊協定驅動程式呼叫 NdisCoOidRequest 函式之後,NDIS 會呼叫其他驅動程式的 OID 要求函式(基礎驅動程式或其他 CoNDIS 通訊協定驅動程式)。 針對迷你埠驅動程式,NDIS 會呼叫 MiniportCoOidRequest 函式。 對於通訊協議驅動程式,NDIS 會呼叫 ProtocolCoOidRequest 函式。
下圖說明導向至迷你埠驅動程式的 OID 要求。
下圖說明導向至通訊協定驅動程式的 OID 要求。
若要同步完成,NdisCoOidRequest 會傳回NDIS_STATUS_SUCCESS或錯誤狀態。 若要以異步方式完成,NdisCoOidRequest 會傳回NDIS_STATUS_PENDING。
如果 NdisCoOidRequest 傳回 NDIS_STATUS_PENDING,則在其他驅動程式藉由呼叫 NdisMCoOidRequestComplete 函式或 NdisCoOidRequestComplete 函式完成 OID 請求後,NDIS 會呼叫 ProtocolCoOidRequestComplete 函式。 在此情況下,NDIS 會在 ProtocolCoOidRequestComplete的 OidRequest 參數中傳遞要求的結果。 NDIS 在 ProtocolCoOidRequestComplete的 Status 參數中傳遞請求的最終狀態。
如果 NdisCoOidRequest 傳回NDIS_STATUS_SUCCESS,它會傳回 OidRequest 參數點 NDIS_OID_REQUEST 結構中查詢要求的結果。 在此情況下,NDIS 不會呼叫 ProtocolCoOidRequestComplete 函式。
如果基礎驅動程式需要將 OID 要求與隨後的狀態指示相關聯,則通訊協定驅動程式應在 NDIS_OID_REQUEST 結構中設定 RequestId 和 RequestHandle 成員。 如果基礎驅動程式發出狀態指示,則驅動程式會將 NDIS_STATUS_INDICATION 結構中 RequestId 成員的值設定為NDIS_OID_REQUEST 結構 RequestId 成員的值,並將NDIS_STATUS_INDICATION 結構中 DestinationHandle 成員的值設定為NDIS_OID_REQUEST結構 RequestHandle 成員的值。
當系結處於 重新啟動、執行、暫停或 暫停 狀態時,驅動程式可以呼叫 NdisCoOidRequest。