!Pte

!pte 확장은 지정된 주소에 대한 PTE(페이지 테이블 항목) 및 PDE(페이지 디렉터리 항목)를 표시합니다.

구문

!pte VirtualAddress 
!pte PTE 
!pte LiteralAddress 1 

매개 변수

VirtualAddress
페이지 테이블이 필요한 가상 주소를 지정합니다.

Pte
실제 PTE의 주소를 지정합니다.

LiteralAddress **** 1
실제 PTE 또는 PDE의 주소를 지정합니다.

DLL

Kdexts.dll

추가 정보

페이지 테이블, 페이지 디렉터리 및 상태 비트에 대한 설명에 대한 자세한 내용은 Mark Russinovich 및 David Solomon의 Microsoft Windows Internals를 참조하세요.

설명

하나의 매개 변수가 제공되고 이 매개 변수가 페이지 테이블이 저장되는 메모리 영역의 주소인 경우 디버거는 이를 PTE 매개 변수로 처리합니다. 이 매개 변수는 원하는 PTE의 실제 주소로 사용되며 디버거는 이 PTE 및 해당 PDE를 표시합니다.

하나의 매개 변수가 제공되고 이 매개 변수가 이 지역의 주소가 아닌 경우 디버거는 이를 VirtualAddress 매개 변수로 처리합니다. 이 주소에 대한 매핑을 포함하는 PTE 및 PDE가 표시됩니다.

두 매개 변수가 제공되고 두 번째 매개 변수가 1(또는 다른 작은 숫자)인 경우 디버거는 첫 번째 매개 변수를 LiteralAddress처리합니다. 이 주소는 PTE의 실제 주소로 해석되며 PDE의 실제 주소로도 해석되며 해당(및 유효하지 않을 수 있음) 데이터가 표시됩니다.

(x86 또는 x64 대상 컴퓨터만 해당) 두 매개 변수가 제공되고 두 번째 매개 변수가 첫 번째 매개 변수보다 크면 디버거는 두 매개 변수를 StartAddress 및 EndAddress처리합니다. 그런 다음 명령은 지정된 메모리 범위의 각 페이지에 대한 PTE를 표시합니다.

모든 시스템 PTE 목록은 !sysptes 확장을 사용합니다.

다음은 x86 대상 컴퓨터의 예입니다.

kd> !pte 801544f4
801544F4  - PDE at C0300800        PTE at C0200550
          contains 0003B163      contains 00154121
        pfn 3b G-DA--KWV    pfn 154 G--A--KRV

이 예제의 첫 번째 줄은 조사 중인 가상 주소를 다시 표시합니다. 그런 다음 이 주소의 가상 물리적 매핑에 대한 정보를 포함하는 PDE 및 PTE의 가상 주소를 제공합니다.

두 번째 줄은 PDE 및 PTE의 실제 콘텐츠를 제공합니다.

세 번째 줄은 이러한 콘텐츠를 가져와서 분석하여 PFN(페이지 프레임 번호) 및 상태 비트로 구분합니다.

PFN을 해석하고 사용하는 방법에 대한 자세한 내용은 !pfn 확장 또는 가상 주소를 실제 주소로 변환 섹션을 참조하세요.

x86 또는 x64 대상 컴퓨터에서는 PDE 및 PTE에 대한 상태 비트가 다음 표에 나와 있습니다. !pte 표시는 대문자 또는 대시가 있는 이러한 비트를 나타내며 추가 정보도 추가합니다.

bit 설정 시 표시 지우기 시 표시 의미

0x200

C

-

쓰기에 복사합니다.

0x100

G

-

전역.

0x80

L

-

큰 페이지입니다. 이는 PDE에서만 발생하며 PTE에서는 발생하지 않습니다.

0x40

D

-

더러운.

0x20

A

-

액세스할.

0x10

N

-

캐시를 사용할 수 없습니다.

0x8

T

-

쓰기-

0x4

U

K

소유자(사용자 모드 또는 커널 모드).

0x2

R

쓰기 가능하거나 읽기 전용입니다. 다중 프로세서 컴퓨터 및 Windows Vista 이상을 실행하는 모든 컴퓨터에서만 가능합니다.

0x1

V

유효한.

E

-

실행 파일 페이지입니다. 많은 x86 시스템을 포함하여 하드웨어 실행/noexecute 비트를 지원하지 않는 플랫폼의 경우 E가 항상 표시됩니다.