!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 |
W |
R |
쓰기 가능하거나 읽기 전용입니다. 다중 프로세서 컴퓨터 및 Windows Vista 이상을 실행하는 모든 컴퓨터에서만 가능합니다. |
0x1 |
V |
유효한. |
|
E |
- |
실행 파일 페이지입니다. 많은 x86 시스템을 포함하여 하드웨어 실행/noexecute 비트를 지원하지 않는 플랫폼의 경우 E가 항상 표시됩니다. |