RtlZeroDeviceMemory 関数 (wdm.h)
RtlZeroDeviceMemory 関数は、RtlFillDeviceMemory に関する便利なラッパーです。
構文
volatile void * RtlZeroDeviceMemory(
[out] volatile void *Destination,
[in] size_t Length
);
パラメーター
[out] Destination
ゼロで埋めるメモリ ブロックの開始アドレスへのポインター。
[in] Length
0 で埋めるメモリ ブロックのサイズ (バイト単位)。
戻り値
Destination の値を返 します。
注釈
RtlZeroDeviceMemory 関数は、RtlFillDeviceMemory に関する便利なラッパーです。
詳細については、「 RtlFillDeviceMemory」の「解説」セクションを参照してください。
注意
この関数は、最新のバージョンだけでなく、すべてのバージョンの Windows で動作します。 wdm.h ヘッダーから関数宣言を取得するには、最新の WDK を使用する必要があります。 また、最新の WDK のライブラリ (volatileaccessk.lib) も必要です。 ただし、結果として得られるドライバーは、古いバージョンの Windows では正常に実行されます。
例
// In this scenario we are setting data on memory mapped
// as "device memory" (for example, memory not backed by RAM) to the value zero. On
// some platforms like ARM64, device memory cannot tolerate
// memory accesses that are not naturally aligned (for example, a 4-byte
// load must be 4-byte aligned). Functions like memset, RtlFillMemory,
// and even RtlFillVolatileMemory may perform unaligned memory accesses
// because it is typically faster to do this.
// To ensure only naturally aligned accesses happen, use RtlFillDeviceMemory.
//
// RtlZeroDeviceMemory is an wrapper around RtlFillDeviceMemory that sets the memory
// to zero.
RtlZeroDeviceMemory(DeviceMemoryBuffer, 100);
要件
要件 | 値 |
---|---|
Header | wdm.h (Wdm.h を含む) |
Library | volatileaccessk.lib (カーネル モード)、volatileaccessu.lib (ユーザー モード) |