다음을 통해 공유


ReadStructFromUser 매크로(usermode_accessors.h)

ReadStructFromUser 매크로는 사용자 모드 메모리에서 구조를 안전하게 읽습니다.

Syntax

void ReadStructFromUser(
  Destination,
  Source
);

Parameters

Destination

[out] 사용자 모드 메모리에서 읽은 데이터를 받는 구조체에 대한 포인터입니다.

Source

[in] 구조를 읽을 사용자 모드 메모리 위치에 대한 포인터입니다.

Return value

None

Remarks

이 매크로는 사용자 모드 메모리에서 구조를 읽는 안전한 방법을 제공합니다. 제공된 주소가 읽기 전에 사용자 모드 주소인지 확인합니다.

매크로는 원본대상이 호환되는 형식을 가리키는지 확인하고 복사 작업의 구조 크기를 자동으로 결정합니다.

이 매크로는 맞춤을 적용하지 않습니다.

원본 주소가 사용자 모드 주소가 아니거나 액세스할 수 없는 경우와 같이 메모리 액세스가 실패하는 경우 구조적 예외가 발생합니다.

이 매크로는 컴파일러에서 최적화되지 않으며, 소스 코드가 명시적으로 이러한 액세스를 수행하지 않는 한 매크로가 호출되기 전이나 매크로가 반환된 후에 컴파일러가 이 메모리 위치에 대한 추가 액세스를 만들지 않습니다. 메모리 액세스는 memory_order_relaxed 의미 체계를 사용하여 수행됩니다.

이 매크로는 최신 버전뿐만 아니라 모든 버전의 Windows에서 작동합니다. usermode_accessors.h 헤더에서 매크로 선언을 얻으려면 최신 WDK를 사용해야 합니다. 최신 WDK의 라이브러리(umaccess.lib)도 필요합니다. 그러나 결과 드라이버는 이전 버전의 Windows에서 잘 실행됩니다.

Requirements

Requirement Value
지원되는 최소 클라이언트 See Remarks
Header usermode_accessors.h
Library umaccess.lib
IRQL APC_LEVEL 작거나 같음

See also

ReadStructFromMode

ReadStructFromUserHelper

WriteStructToUser