次の方法で共有


NdisAllocateCloneOidRequest 関数 (ndis.h)

NdisAllocateCloneOidRequest 関数は、新しい NDIS_OID_REQUEST 構造体のメモリを割り当て、既存のNDIS_OID_REQUEST構造体から新しく割り当てられた構造体にすべての情報をコピーします。

構文

NDIS_STATUS NdisAllocateCloneOidRequest(
  [in] IN NDIS_HANDLE        SourceHandle,
       IN PNDIS_OID_REQUEST  OidRequest,
  [in] IN UINT               PoolTag,
       OUT PNDIS_OID_REQUEST *ClonedOidRequest
);

パラメーター

[in] SourceHandle

フィルター モジュールまたは中間ドライバーのプロトコル バインドを識別する NDIS ハンドル。

OidRequest

NDIS が新しく割り当てられた構造体に情報をコピーする既存の NDIS_OID_REQUEST 構造体へのポインター。

[in] PoolTag

カーネル プール タグ。 タグは文字列で、単一引用符で区切られます。通常は逆の順序で指定される 4 文字までです。

ClonedOidRequest

NDIS_OID_REQUEST構造体へのポインターへのポインター。 NDIS がNDIS_STATUS_SUCCESSを返す場合、NDIS は、新しい、複製されたNDIS_OID_REQUEST構造体へのポインターを提供します。それ以外の場合、NDIS はポインター値 NULLに設定します。

戻り値

NdisAllocateClonedRequest は、次のいずれかの状態値を返すことができます。

リターン コード 形容
NDIS_STATUS_SUCCESS
NDIS が正常にNDIS_OID_REQUEST構造体を割り当てた。 CloneRequest パラメーターには、NDIS_OID_REQUEST構造体へのポインターが含まれています。
NDIS_STATUS_INVALID_PARAMETER
SourceHandle で指定された NDIS ハンドルが無効であるため、割り当て要求が失敗しました。
NDIS_STATUS_RESOURCES
割り当て要求を完了するのに十分なリソースが NDIS になかったため、割り当て要求が失敗しました。
NDIS_STATUS_FAILURE
上記の一覧以外の理由で、ドライバーは複製された構造体を割り当てませんでした。

備考

基になるドライバーに要求を転送するには、NDIS 中間ドライバーまたはフィルター ドライバー NdisAllocateCloneOidRequest を呼び出して、複製された NDIS_OID_REQUEST 構造体を割り当てる必要があります。 フィルター ドライバーまたは中間ドライバーは、基になるドライバーに元のNDIS_OID_REQUEST構造を転送しないでください。

NdisAllocateCloneOidRequest は、新しいメモリを割り当て、既存のNDIS_OID_REQUEST構造体から新しい構造体にデータをコピーします。

その後、ドライバーは、NDIS_OID_REQUEST構造体を解放するために、NdisFreeCloneOidRequest 関数を呼び出す必要があります。

必要条件

要件 価値
サポートされる最小クライアント NDIS 6.0 以降でサポートされています。
ターゲット プラットフォーム デスクトップ
ヘッダー ndis.h (Ndis.h を含む)
ライブラリ Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI コンプライアンス規則 する Irql_OID_Function(ndis)

関連項目

NDIS_OID_REQUEST

NdisFreeCloneOidRequest