NdisMoveMemory マクロ (ndis.h)

NdisMoveMemory 関数は、呼び出し元が指定した場所から別の場所に指定されたバイト数をコピーします。

構文

void NdisMoveMemory(
  [out]  Destination,
  [in]   Source,
  [in]   Length
);

パラメーター

[out] Destination

移動先であるシステム空間バッファーへのポインター。 このバッファーのサイズは、少なくとも Length バイトである必要があります。

[in] Source

この関数がデータをコピー先バッファーにコピーするシステム空間バッファーへのポインター。 このバッファーのサイズは、少なくとも Length バイトである必要があります。

[in] Length

コピーするバイト数。

戻り値

なし

解説

[ソース] と [宛先] の両方が仮想アドレスです。

いずれかのアドレスが NdisMMapIoSpace にマップされたデバイス メモリの範囲内にある場合、ミニポート ドライバーは Ndis のいずれかを呼び出す必要があります 。NdisMoveMemory の代わりに MappedMemory 関数。

[ソース] と [長さ] で指定された範囲は、宛先の範囲と重複できません。

指定された SourceDestination が常駐している場合、NdisMoveMemory の呼び出し元は任意の IRQL で実行できます。 それ以外の場合、呼び出し元は IRQL < DISPATCH_LEVELで実行されている必要があります。たとえば、いずれかのアドレスがスタック上にある場合などです。

要件

要件
サポートされている最小のクライアント NDIS 6.0 以降の既存のドライバーでサポートされていますが、新しいドライバーでは、代わりに RtlCopyMemory (RtlMoveMemory ではなく) を使用する必要があります。
対象プラットフォーム デスクトップ
Header ndis.h (Ndis.h を含む)
IRQL 「解説」セクションを参照してください

こちらもご覧ください

NdisAllocateMemoryWithTagPriority

NdisMMapIoSpace