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構造体から新しい構造体にデータをコピーします。

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

要件

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

こちらもご覧ください

NDIS_OID_REQUEST

NdisFreeCloneOidRequest