與其他 CoNDIS 通話管理員一樣,迷你埠通話管理員 (MCM) 可以查詢或設定 CoNDIS 用戶端驅動程式的作業參數。 CoNDIS 用戶端驅動程式可以查詢或設定 MCM 的呼叫管理員參數或迷你埠驅動程序參數。
為了產生 CoNDIS 用戶端驅動程式的 OID 要求,MCM 會呼叫 NdisMCmOidRequest 函式。
MCM 發起的 OID 要求如下圖所示。
MCM 驅動程式呼叫 NdisMCmOidRequest 函式之後,NDIS 會呼叫用戶端驅動程式的 ProtocolCoOidRequest 函式。
若要同步完成,NdisMCmOidRequest 會傳回NDIS_STATUS_SUCCESS或錯誤狀態。 若要以異步方式完成,NdisMCmOidRequest 會傳回NDIS_STATUS_PENDING。
如果 NdisMCmOidRequest 傳回 NDIS_STATUS_PENDING,NDIS 會在用戶端驅動程式透過呼叫 NdisCoOidRequestComplete 函式完成 OID 請求後,呼叫 MCM 的 ProtocolCoOidRequestComplete 函式。 在此情況下,NDIS 會在 OidRequest 參數中傳遞 ProtocolCoOidRequestComplete的要求結果。 NDIS 會在 ProtocolCoOidRequestComplete的 Status 參數中傳遞請求的最終狀態。
如果 NdisMCmOidRequest 傳回 NDIS_STATUS_SUCCESS,則會在 OidRequest 參數的 NDIS_OID_REQUEST 結構中傳回查詢要求的結果。 在此情況下,NDIS 不會呼叫 MCM 的 ProtocolCoOidRequestComplete 函式。
CoNDIS 用戶端驅動程式可以查詢或設定 MCM 的呼叫管理員作業參數或迷你埠作業參數。 為了發起 MCM 呼叫管理員參數的 OID 要求,用戶端會呼叫 NdisCoOidRequest 函式,並在 NdisAfHandle 參數提供有效的地址族控制碼。 為了產生 MCM 迷你埠參數的 OID 要求,用戶端會呼叫 NdisCoOidRequest 函式,並將 AF 句柄設定為 NULL。
用戶端呼叫 NdisCoOidRequest 函式之後,NDIS 會呼叫 MCM 驅動程式的 MiniportCoOidRequest 函式或 ProtocolCoOidRequest 函式。
下圖說明 MCM 迷你埠參數的 OID 要求。
下圖說明 MCM 呼叫管理員參數的 OID 要求。
若要同步完成,NdisCoOidRequest 會傳回NDIS_STATUS_SUCCESS或錯誤狀態。 若要以異步方式完成,ProtocolCoOidRequest 或 MiniportCoOidRequest 會傳回 NDIS_STATUS_PENDING。
如果 ProtocolCoOidRequest 或 MiniportCoOidRequest 傳回 NDIS_STATUS_PENDING,NDIS 在 MCM 完成 OID 請求後,會呼叫用戶端的 ProtocolCoOidRequestComplete 函式,這是透過呼叫 NdisMCoOidRequestComplete 或 NdisMCmOidRequestComplete 函式來實現的。 在此情況下,NDIS 會在 OidRequest 參數中傳遞 ProtocolCoOidRequestComplete的要求結果。 NDIS 會在 ProtocolCoOidRequestComplete的 Status 參數中傳遞請求的最終狀態。
如果 NdisCoOidRequest 傳回 NDIS_STATUS_SUCCESS,則會在 NDIS_OID_REQUEST 結構中的 OidRequest 參數返回查詢請求的結果。 在此情況下,NDIS 不會呼叫用戶端的 ProtocolCoOidRequestComplete 函式。