Share via


NdisMCmOidRequest 函式 (ndis.h)

NdisMCmOidRequest 函式會將 OID 要求從迷你埠呼叫管理員 (MCM) 驅動程式傳送至 CoNDIS 用戶端。

語法

NDIS_STATUS NdisMCmOidRequest(
  [in]           NDIS_HANDLE       NdisAfHandle,
  [in, optional] NDIS_HANDLE       NdisVcHandle,
  [in, optional] NDIS_HANDLE       NdisPartyHandle,
                 PNDIS_OID_REQUEST NdisOidRequest
);

參數

[in] NdisAfHandle

識別位址系列 (AF) 的句柄,並以隱含方式識別導向 OID 要求的用戶端。 MCM 驅動程式最初是以其 ProtocolCmOpenAf 函式的輸入參數的形式取得此句柄。

[in, optional] NdisVcHandle

識別虛擬連線的句柄, (VC) 呼叫者要求或設定資訊的 VC 特定。 否則,如果此要求不是 VC 特定,則此參數為 NULL。 對於任何 VC 特定要求,呼叫端最初是在使用 NdisMCmCreateVc 函式建立 VC 時,或作為 其 ProtocolCoCreateVc 函式的輸入參數時,取得此句柄。

[in, optional] NdisPartyHandle

句柄,識別呼叫端要求或設定資訊之多點 VC 上的合作物件,如果要求是特定合作物件。 否則,如果此要求不是特定合作物件,則此參數為 NULL。 對於任何合作物件特定的要求,MCM 驅動程式原本會取得此句柄作為其 ProtocolCmAddParty 函式 的輸入參數。

NdisOidRequest

包含 NDIS_OID_REQUEST 結構的呼叫端配置緩衝區指標。

傳回值

NdisMCmOidRequest 會傳回下列其中一個值:

傳回碼 Description
NDIS_STATUS_SUCCESS
要求作業已順利完成。
NDIS_STATUS_PENDING
要求正以異步方式處理,而 NDIS 會呼叫呼叫端的當要求完成時,ProtocolCoOidRequestComplete 函式。
NDIS_STATUS_INVALID_OID
OidRequest 參數之 NDIS_OID_REQUEST 結構的 Oid 成員中指定的 OID_XXX 程式代碼無效或不受基礎驅動程序支援。
NDIS_STATUS_INVALID_LENGTH或NDIS_STATUS_BUFFER_TOO_SHORT
OidRequest 之 NDIS_OID_REQUEST 結構之 InformationBufferLength 成員中指定的值不符合指定之 OID_XXX 程式代碼的需求。 如果信息緩衝區太小,當 NdisMCmOidRequest 傳回時,NDIS_OID_REQUEST的 BytesNeeded 成員會包含 InformationBufferLength 的正確值。
NDIS_STATUS_INVALID_DATA
給定NDIS_OID_REQUEST結構中 InformationBuffer 提供的數據對於指定的OID_XXX 程式代碼無效。
NDIS_STATUS_NOT_SUPPORTED或NDIS_STATUS_NOT_RECOGNIZED
用戶端驅動程式不支援要求的作業。
NDIS_STATUS_RESOURCES
因為資源不足,所以無法滿足要求。 通常,這個傳回值表示嘗試配置記憶體失敗,但不一定表示相同的要求,如果稍後提交,將會因為相同的原因而失敗。
NDIS_STATUS_FAILURE
這個值通常是一個非特定預設值,當未套用更明確的NDIS_STATUS_XXX 狀態代碼時,就會傳回這個預設值。
NDIS_STATUS_REQUEST_ABORTED
目標驅動程式已停止處理要求。

備註

若要起始對 CoNDIS 用戶端的 OID 要求,MCM 驅動程式會呼叫 NdisMCmOidRequest 函式。 在 MCM 驅動程式呼叫 NdisMCmOidRequest 之前,驅動程式會為其要求配置記憶體,並初始化 NDIS_OID_REQUEST 結構。 MCM 會使用 CoNDIS OID 程式代碼,設定 NDIS_OID_REQUEST 結構的 Oid 成員。

MCM 驅動程式可以呼叫 NdisMCmOidRequest 來傳達連線導向資訊,例如 NdisAfHandle 參數所識別用戶端的地址變更。

MCM 呼叫 NdisMCmOidRequest 之後,NDIS 會呼叫用戶端的 ProtocolCoOidRequest 函式。

如果 MCM 驅動程式的要求是 VC 特定或特定合作物件,MCM 驅動程式也會分別在 NdisVcHandleNdisPartyHandle 參數傳遞非 NULL 值。

如果 NdisMCmOidRequest 傳回NDIS_STATUS_PENDING,則會以異步方式處理要求,NDIS 會呼叫 MCM 的當要求完成時,ProtocolCoOidRequestComplete 函式。 如果 NdisMCmOidRequest 傳回任何其他狀態, 當 NdisMCmOidRequest 傳回且 NDIS 未呼叫 ProtocolCoOidRequestComplete 時,要求就會完成。

如需定義為搭配 NdisMCmOidRequest 使用之 OID 的詳細資訊,請參閱 NDIS OIDs

規格需求

需求
最低支援的用戶端 NDIS 6.0 和更新版本支援。
目標平台 桌面
標頭 ndis.h (包含 Ndis.h)
程式庫 Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI 合規性規則 Irql_MCM_Function (ndis)

另請參閱

NDIS_OID_REQUEST

NdisMCmCreateVc

ProtocolCmAddParty

ProtocolCmOpenAf

ProtocolCoCreateVc

ProtocolCoOidRequest

ProtocolCoOidRequestComplete