次の方法で共有


RtlCopyMemory マクロ (wdm.h)

RtlCopyMemory ルーチンは、ソース メモリ ブロックの内容を宛先メモリ ブロックにコピーします。

構文

void RtlCopyMemory(
   void*       Destination,
   const void* Source,
   size_t      Length
);

パラメーター

[out] Destination

バイトをコピーする宛先メモリ ブロックへのポインター。

[in] Source

バイトのコピー元となるソース メモリ ブロックへのポインター。

[in] Length

ソースからコピー先にコピーするバイト数。

戻り値

なし

解説

RtlCopyMemory、RtlMoveMemory よりも高速に実行されます。 ただし、 RtlCopyMemory では、 SourceLength で定義されているソース メモリ ブロックが、 DestinationLength で定義されている宛先メモリ ブロックと重複できないことが必要です。 これに対し、 RtlMoveMemory は、ソースと宛先のメモリ ブロックが重複するケースを正しく処理します。

新しいドライバーでは、 RtlCopyBytes ではなく RtlCopyMemory ルーチンを使用 する必要があります。

RtlCopyMemory の呼び出し元は、ソースと宛先のメモリ ブロックが非ページ システム メモリにある場合、任意の IRQL で実行できます。 それ以外の場合、呼び出し元は IRQL <= APC_LEVELで実行されている必要があります。

要件

要件
対象プラットフォーム ユニバーサル
Header wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtDll.dll (ユーザー モード);NtosKrnl.exe (カーネル モード)
IRQL 任意のレベル (「解説」セクションを参照)

こちらもご覧ください

RtlMoveMemory