次の方法で共有


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

アドレス ファミリ (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 は、次のいずれかの値を返します。

リターン コード 形容
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 コードの要件と一致しません。 情報バッファーが小さすぎる場合、NDIS_OID_REQUEST の BytesNeeded メンバーには、NdisMCmOidRequest が返されるときに、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
通常、この値は、XXX状態コードのより具体的なNDIS_STATUS_が適用されない場合に返される非特定の既定値です。
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 以降でサポートされています。
ターゲット プラットフォーム デスクトップ
ヘッダー ndis.h (Ndis.h を含む)
ライブラリ Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI コンプライアンス規則 する Irql_MCM_Function(ndis)

関連項目

NDIS_OID_REQUEST

NdisMCmCreateVc する

ProtocolCmAddParty

ProtocolCmOpenAf

ProtocolCoCreateVc

ProtocolCoOidRequest

ProtocolCoOidRequestComplete