RtlZeroDeviceMemory 함수(wdm.h)

RtlZeroDeviceMemory 함수는 RtlFillDeviceMemory에 대한 편리한 래퍼입니다.

구문

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에서 정상적으로 실행됩니다.

예제

// 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(사용자 모드)

추가 정보

RtlFillDeviceMemory