RtlSecureZeroMemory マクロ (wdm.h)
RtlSecureZeroMemory ルーチンは、セキュリティで保護された方法でメモリ ブロックにゼロを格納します。
構文
void RtlSecureZeroMemory(
Ptr,
[in] cnt
);
パラメーター
Ptr
0 で埋めるメモリ バッファーへのポインター。
[in] cnt
0 で埋めるバイト数を指定します。
戻り値
なし
解説
RtlSecureZeroMemory の効果は RtlZeroMemory の効果と同じですが、後で書き込まれていなくてもメモリ位置がゼロであることが保証される点が除きます。 (呼び出し元がそのメモリ範囲に再びアクセスしないと判断された場合、コンパイラは RtlZeroMemory の呼び出しを最適化できます)。
RtlSecureZeroMemory を使用して、機密情報がゼロになっていることを保証します。たとえば、関数がローカル配列変数を使用してパスワード情報を格納するとします。 関数が終了すると、 RtlSecureZeroMemory によってゼロ化されない限り、パスワード情報は同じメモリ位置に残ります。
RtlSecureZeroMemory は RtlZeroMemory よりも低速です。そのため、セキュリティが問題でない場合は、代わりに RtlZeroMemory を 使用してください。
ptr ブロックが非ページ プールにある場合、RtlSecureZeroMemory の呼び出し元は任意の IRQL で実行できます。 それ以外の場合、呼び出し元は IRQL <= APC_LEVELで実行されている必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Server 2003 以降のバージョンの Windows で使用できます。 (ルーチンはインラインで宣言されているため、以前のバージョンのオペレーティング システムにルーチンの本体を含めることができます)。 |
対象プラットフォーム | デスクトップ |
Header | wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む) |
IRQL | 任意のレベル (「解説」セクションを参照) |