RtlZeroDeviceMemory 함수(wdm.h)
RtlZeroDeviceMemory 함수는 RtlFillDeviceMemory에 대한 편리한 래퍼입니다.
C++
volatile void * RtlZeroDeviceMemory(
[out] volatile void *Destination,
[in] size_t Length
);
[out] Destination
0으로 채울 메모리 블록의 시작 주소에 대한 포인터입니다.
[in] Length
0으로 채울 메모리 블록의 크기(바이트)입니다.
Destination 값을 반환 합니다.
RtlZeroDeviceMemory 함수는 RtlFillDeviceMemory에 대한 편리한 래퍼입니다.
자세한 내용은 RtlFillDeviceMemory의 설명 섹션을 참조하세요.
참고
이 함수는 최신 버전뿐만 아니라 모든 버전의 Windows에서 작동합니다. wdm.h 헤더에서 함수 선언을 얻으려면 최신 WDK를 사용해야 합니다. 또한 최신 WDK의 라이브러리(volatileaccessk.lib)도 필요합니다. 그러나 결과 드라이버는 이전 버전의 Windows에서 정상적으로 실행됩니다.
C++
// 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);
요구 사항 | 값 |
---|---|
헤더 | wdm.h(Wdm.h 포함) |
라이브러리 | volatileaccessk.lib(커널 모드), volatileaccessu.lib(사용자 모드) |