NdisMCmOidRequest 関数 (ndis.h)

NdisMCmOidRequest 関数は、ミニポート呼び出しマネージャー (MCM) ドライバーから CoNDIS クライアントに OID 要求を送信します。

構文

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

パラメーター

[in] NdisAfHandle

OID 要求の転送先となるアドレス ファミリ (AF)、および暗黙的にクライアントを識別するハンドル。 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 は、次のいずれかの値を返します。

リターン コード 説明
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 ドライバーは、それぞれ NdisVcHandle または NdisPartyHandle パラメーターで NULL 以外値を渡します。

NdisMCmOidRequest がNDIS_STATUS_PENDINGを返す場合、要求は非同期的に処理され、NDIS は MCM の を呼び出します要求が完了したときの ProtocolCoOidRequestComplete 関数。 NdisMCmOidRequest が他の状態を返す場合、NdisMCmOidRequest が返され、NDIS が ProtocolCoOidRequestComplete を呼び出さないと、要求は完了します。

NdisMCmOidRequest で使用するように定義されている OID の詳細については、「NDIS OID」を参照してください。

要件

要件
サポートされている最小のクライアント NDIS 6.0 以降でサポートされています。
対象プラットフォーム デスクトップ
Header ndis.h (Ndis.h を含む)
Library Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI コンプライアンス規則 Irql_MCM_Function(ndis)

こちらもご覧ください

NDIS_OID_REQUEST

NdisMCmCreateVc

ProtocolCmAddParty

ProtocolCmOpenAf

ProtocolCoCreateVc

ProtocolCoOidRequest

ProtocolCoOidRequestComplete