Làm th? nào đ? s? d?ng các tính năng đ?c bi?t ngoài tr?i đ? cô l?p thi?t h?i ngoài tr?i

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 188831 - Xem s?n ph?m mà bài này áp d?ng vào.
Bung t?t c? | Thu g?n t?t c?

Tóm t?t

Ngoài tr?i thi?t h?i có th? gây ra nhi?u nh?t l?n tránh các v?n đ? v?i Windows NT. ngoài tr?i thi?t h?i x?y ra khi m?t ch? đ? h?t nhân thành ph?n ghi nh? bên ngoài khu v?c h? bơi đư?c phân b?. Vi?t thư cho b? nh? ngoài ranh gi?i c?a khu v?c phân b? c?a nó, nó có kh? năng là m?t Các khu v?c c?a b? nh? phân b?, có th? thu?c s? h?u c?a m?t thành ph?n, đư?c ghi đè. Thi?t h?i này có th? gây ra các v?n đ? ch?ng h?n như các màn h?nh màu xanh trong hoàn toàn không liên quan nh?t khu v?c c?a m?. M?t thành ph?n ch? đ? h?t nhân đ?c ngoài khu v?c phân b? c?a m?nh có th? c?ng gây ra v?n đ?.

Cho dù nó đư?c gây ra b?i thi?t b? g?c Tr?nh đi?u khi?n nhà s?n xu?t (OEM) ho?c các v?n đ? trong Windows, ngoài tr?i thi?t h?i đang có v?n đ? m?t s? khó khăn nh?t đ? xác đ?nh. Thông thư?ng, t?t c? nh?ng g? có th? đư?c nh?n th?y trong m?t tai n?n đ? phân tích là tri?u ch?ng c?a v?n đ? th?c t?, ch?ng h?n như khu d? li?u tr? thành b? hư h?i và gây ra các v?n đ? trong m?t kh?i m? hoàn toàn không liên quan. Cho đ?n nay, nó đ? h?u như không th? t?m th?y đo?n m? có thi?t h?i b? nh?.

Ngu?n g?c c?a tr?i thi?t h?i bây gi? có th? đư?c xác đ?nh t?i hư?ng d?n gây thi?t h?i ngoài tr?i. M?t ti?n ích qu?n l? b? nh? m?i đó là đư?c đ?t tên theo h? bơi đ?c bi?t là đi kèm v?i Windows NT 4.0 Service Pack 4 (SP4), Windows 2000, Windows XP, Windows Server 2003, Windows Vista, và Windows Server 2008. Các ti?n ích ngoài tr?i đ?c bi?t xác đ?nh các thành ph?n ch? đ? l?i gây t?n h?i d? li?u ngoài tr?i vi?t thư cho b? nh? bên ngoài khu v?c đư?c phân b?.

Lưu ? B? nh? đi?u ch?nh không áp d?ng cho Windows Vista và Windows Server 2008. Tuy nhiên, tính năng bơi đ?c bi?t áp d?ng cho các s?n ph?m.

Thông tin thêm

Quan tr?ng Ph?n, phương pháp ho?c tác v? này ch?a các bư?c cho b?n bi?t làm th? nào đ? s?a đ?i s? ki?m nh?p. Tuy nhiên, v?n đ? nghiêm tr?ng có th? x?y ra n?u b?n s?a đ?i registry không chính xác. V? v?y, h?y ch?c ch?n r?ng b?n làm theo các bư?c sau m?t cách c?n th?n. Đ? b?o v? b? sung, sao lưu s? ki?m nh?p trư?c khi b?n s?a đ?i nó. Sau đó, b?n có th? khôi ph?c s? ki?m nh?p n?u m?t v?n đ? x?y ra. Đ? bi?t thêm chi ti?t v? làm th? nào đ? sao lưu và khôi phục s? ki?m nh?p, nh?p vào s? bài vi?t sau đ? xem bài vi?t trong cơ s? ki?n th?c Microsoft:
322756 Làm th? nào đ? sao lưu và khôi phục s? ki?m nh?p trong Windows


Các ti?n ích ngoài tr?i đ?c bi?t phân b? hai trang c?a b? nh? ?o cho m?i phân b? ngoài tr?i đư?c yêu c?u thông qua ExAllocatePoolWithTag mà phù h?p v?i các tiêu chí sau:
  • Yêu c?u phân ph?i ph?i cho m?t kích thư?c nh? hơn so v?i các t?i đa phân b? s? phù h?p trong m?t trang ngoài tr?i.
  • Yêu c?u ph?i phù h?p v?i đ?c đi?m k? thu?t PoolTag ? các s? ki?m nh?p.
Đ? phát hi?n ngoài tr?i tràn ng?p, trang đ?u tiên đư?c s? d?ng đ? ch?a vi?c phân b? ? cu?i trang. Trang th? hai là m?t trang b?o v?. Cho phát hi?n ngoài tr?i underrun, trang đ?u tiên là trang b?o v?. Nó đư?c theo sau b?i m?t Trang có ch?a phân b? ? đ?u trang.

Overrun phát hi?n là có l? là nh?t đư?c s? d?ng. Overrun phát hi?n, các yêu c?u phân b? là v? trí ? ph?n cu?i c?a trang đ?u tiên c?a sao lưu các yêu c?u các kích thư?c t? đ?u trang. m?c chi?u phát đư?c làm tr?n lên đ?n m?t 8-byte ranh gi?i. M?t ch?a khóa mô h?nh, kích thư?c và thông tin th? bơi ngoài tr?i vi?t tiêu đ? lúc 8 byte đ?u tiên c?a trang đ?u tiên. Các mô h?nh c?ng đư?c ph? bi?n trên kh?p các trang. B?i v? vi?c phân b? v? trí trên các g?n nh?t ranh gi?i 8 byte, có th? có nhi?u như b?y slop byte sau các phân b?. Các mô h?nh c?ng đư?c vi?t đ? slop byte sau các phân b?.

Trang th? hai là trang b?o v?. B?o v? trang bao g?m m?t trang đ?c bi?t b?ng m?c (CP) đư?c đánh d?u ki?m v?i không truy c?p b?o v?. B?ng cách đánh d?u ki?m trang này th? hai v?i truy c?p không có b?o v?, b?t k? m? c? g?ng đ? đ?c ho?c vi?t ngoài cu?i đ?u tiên trang ngay l?p t?c gây ra m?t s? vi ph?m truy nh?p mà k?t qu? trong m?t ng?ng 0x0000000A ho?c l?i d?ng 0x0000001E. Đi?u này cho phép m?t ngư?i nào đó g? l?i h? th?ng đ? t?m th?y các hư?ng d?n chính xác mà gây ra thi?t h?i ngoài tr?i.

Như là m?t ki?m tra d? ph?ng đ? b?t ngư?i vi ph?m mà vi?t vư?t ra ngoài vào cu?i c?a vi?c phân b? không vư?t ra ngoài đ?u c?a trang, slop byte cu?i c?a vi?c phân b? đư?c xác nh?n trong yêu c?u mi?n phí h? bơi (ExFreePoolWithTag). Slop byte đư?c so sánh v?i các mô h?nh trong các phân b? tiêu đ? đ? xác đ?nh cho dù b?t c? đi?u g? ghi đè slop byte vùng. N?u ki?m tra xác minh không ho?t đ?ng, m?t l?i d?ng 0x00000001A x?y ra.

Ki?m tra này không nh?t thi?t ph?i t?m th?y chính xác kh?i M? gây ra thi?t h?i ngoài tr?i. Tuy nhiên, nó có th? giúp xác đ?nh các thành ph?n mà gây ra thi?t h?i.

Đ? kích ho?t ti?n ích ngoài tr?i đ?c bi?t, thêm các phím và giá tr? s? ki?m nh?p sau đây:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management


Giá tr? tên: PoolTag
ki?u d? li?u: REG_DWORD
D? li?u: Pool th? m?t n? | Phân b? kích thư?c m?t n? | 0
M?t n? th? H? bơi là h? bơi th? ID có m?t n? nhân v?t c?a các h? bơi mà b?n mu?n đ?t trong h? bơi đ?c bi?t. M?t n? này ph?i đư?c xác đ?nh trong h? th?p l?c phân theo th? t? ngư?c. M?t n? này c?ng có th? ch?a "?" đ? che d?u ki?m m?t nhân v?t duy nh?t ho?c "*" đ? m?t n? t? đây đ?n đ?u c?a các t? khóa. Ví d?, đ? giám sát t?t c? các h? bơi v?i m?t th? ngoài tr?i B?t đ?u v?i "Nt", ch? đ?nh "2A744E" (không có d?u ki?m ngo?c kép), đ?i di?n cho "* tN".

Các B?ng sau li?t kê các ví d?.
   Pool to monitor   Character representation   Pool tag mask
   ----------------------------------------------------------               
   All pools         "*"                        0x2A
   N??s              "s??N"                     0x733F3F4E
				
Phân b? kích thư?c m?t n? đ?c đi?m k? thu?t đ?t t?t c? h? bơi phân b? c?a Kích thư?c đư?c ch? đ?nh vào h? bơi đ?c bi?t. Đi?u này c?ng đư?c ch? đ?nh trong h? th?p l?c phân. Ví d?, n?u t?t c? phân b? c?a 32 byte đư?c đ?nh v? trong h? bơi đ?c bi?t, ch? đ?nh 0x20.

Khi không (0x0) đư?c ch? đ?nh, Ti?n ích ngoài tr?i đ?c bi?t không đư?c kh?i t?o. Ngoài ra, Ti?n ích ngoài tr?i đ?c bi?t không đư?c kh?i t?o n?u giá tr? ki?m nh?p PoolTag không đư?c xác đ?nh trong s? ki?m nh?p.
Giá tr? tên: PoolTagOverruns
ki?u d? li?u: REG_DWORD
D? li?u: 1 | 0
1 ch? ra r?ng ngoài tr?i phân b? nghiêm đư?c phát hi?n cho các th? đư?c ch? đ?nh. Vi?c phân b? n?m ? cu?i trang và b?o v? Trang sau.

0 ch? ra r?ng ngoài tr?i phân b? underruns đư?c phát hi?n cho các t? khóa. Vi?c phân b? n?m ? đ?u trang, và b?o v? trang đ?n trư?c khi trang đó bao g?m vi?c phân b?.

Ví d? s? d?ng ph? bi?n đ? t?o ra các khóa registry hai s? th?c hi?n như sau:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\ Memory Management


Giá tr? tên: PoolTag
ki?u d? li?u: REG_DWORD
D? li?u: 0x2A

Giá tr? tên: PoolTagOverruns
ki?u d? li?u: REG_DWORD
D? li?u: 1


Lưu ? Cho thi?t b? đ?u cu?i Windows NT Server 4.0, b?n ph?i vô hi?u hóa KStackPool Khi b?n s? d?ng h? bơi đ?c bi?t. Đ? làm đi?u này, thêm giá tr? ki?m nh?p sau:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management


Giá tr? tên: EnableKStackPool
ki?u d? li?u: REG_DWORD
D? li?u: 0

1 - KStack ngoài tr?i luôn kích ho?t
2 - KStack ngoài tr?i cho phép đ?i v?i máy tính có 256 MB ho?c nhi?u hơn b? nh? (m?c đ?nh)
N?u b?n th?c hi?n thay đ?i này trên thi?t b? đ?u cu?i Máy ch? máy tính có 256 MB ho?c b? nh? nhi?u hơn, b?n có th? nh?n đư?c "STOP 0x00000078 (PHASE0_EXCEPTION) "thông báo l?i.


Lưu ? Các tính năng đ?c bi?t ngoài tr?i có th? không làm vi?c trong Windows Server 2003 n?u không có đ? đ?c bi?t Trang b?ng m?c (PTEs). V?n đ? này thư?ng x?y ra trên máy ch? thi?t b? đ?u cu?i duy nh?t-ngư?i dùng có ch?a nhi?u hơn 1 GB RAM và có các giá tr? đi?u ch?nh qu?n l? b? nh? c?a máy tính thi?t l?p giá tr? m?c đ?nh. V?n đ? này không x?y ra trong phiên b?n 64-bit c?a Windows Server 2003.

M?t k?t xu?t b? nh? t?p tin phân tích các v?n đ? có th? ch?a các thông tin sau:
*** Virtual Memory Usage *** 
Physical Memory: 1015660 ( 4062640 Kb) 
Page File: \??\C:\Pagefile1\pagefile.sys 
Current: 4193280Kb Free Space: 4180856Kb 
Minimum: 4193280Kb Maximum: 4193280Kb 
Available Pages: 552680 ( 2210720 Kb) 
ResAvail Pages: 932179 ( 3728716 Kb) 
Locked IO Pages: 347 ( 1388 Kb) 
Free System PTEs: 187166 ( 748664 Kb) 
Free NP PTEs: 32765 ( 131060 Kb) 
Free Special NP: 117228 ( 468912 Kb) 
Modified Pages: 106 ( 424 Kb) 
Modified PF Pages: 98 ( 392 Kb) 
NonPagedPool Usage: 6599 ( 26396 Kb) 
NonPagedPool Max: 65536 ( 262144 Kb) 
PagedPool 0 Usage: 10697 ( 42788 Kb) 
PagedPool 1 Usage: 1240 ( 4960 Kb) 
PagedPool 2 Usage: 1239 ( 4956 Kb) 
PagedPool 3 Usage: 1265 ( 5060 Kb) 
PagedPool 4 Usage: 1231 ( 4924 Kb) 
PagedPool Usage: 15672 ( 62688 Kb) 
PagedPool Maximum: 90112 ( 360448 Kb) 
Shared Commit: 3866 ( 15464 Kb) 
Special Pool: 511 ( 2044 Kb) <-- very small
Shared Process: 5205 ( 20820 Kb) 
PagedPool Commit: 15672 ( 62688 Kb) 
Driver Commit: 2091 ( 8364 Kb) 
Committed pages: 439832 ( 1759328 Kb) 
Commit limit: 2023823 ( 8095292 Kb)

0: kd> dd nt!MmSpecialPoolRejected l8 
8057afe0 00000000 00000000 00b2e59a 00000000 <-- A DWORD value of 3 causes special pool PTE's shortage.
8057aff0 00000000 00000000 00000000 00000000

8057afd8 nt!MiSpecialPoolFirstPte = 0xc022af78
8057afd4 nt!MiSpecialPoolLastPte = 0xc022af78
B?n có th? xác minh v?n đ? b?ng cách kích thư?c c?a h? bơi đ?c bi?t đư?c phân b? t? phân tích. Trong trư?ng h?p này, các v?n đ? x?y ra b?i v? các giá tr? CP H? bơi đ?c bi?t sau đây là tương đương:
  • MiSpecialPoolFirstPte
  • MiSpecialPoolLastPte
V?n đ? này c?ng có th? x?y ra n?u giá tr? c?a các m?c nh?p registry MmSpecialPoolRejected là ba ho?c l?n hơn.

Đ? làm vi?c xung quanh v?n đ? này, đ?t c?u h?nh giá tr? c?a các m?c nh?p registry PagedPoolSize m?t giá tr? nh? hơn kích thư?c paged ngoài tr?i đư?c phép. Ví d?, thi?t l?p các m?c nh?p registry PagedPoolSize m?t giá tr? 256 MB. N?u b?n mu?n c?u h?nh m?t giá tr? l?n hơn, s? d?ng ti?n ích theo d?i hi?u su?t đ? xác đ?nh c?a máy tính yêu c?u cho m?t kích thư?c paged ngoài tr?i l?n hơn.

B?n có th? s? d?ng các giá tr? sau cho các m?c nh?p registry PagedPoolSize:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
Cho Windows Server 2003 mà không có m?t gói d?ch v?:

Giá tr? tên: PagedPoolSize
ki?u d? li?u: REG_DWORD
D? li?u: 10000000
Cơ s?: h? th?p l?c phân

Cho Windows Server 2003 v?i Service Pack 1 (SP1) đư?c cài đ?t:

Giá tr? tên: PagedPoolSize
ki?u d? li?u: REG_DWORD
D? li?u: FFFFFFFF
Cơ s?: h? th?p l?c phân

Lưu ? Sau khi b?n th?c hi?n b?t k? thay đ?i s? ki?m nh?p đư?c mô t? trong Bài vi?t, kh?i đ?ng l?i máy tính đ? gây ra nh?ng thay đ?i có hi?u l?c.

N?u sau khi b?n kích ho?t tính năng đ?c bi?t bơi trong nhà, máy tính ng?ng đáp ?ng (treo), và b?n nh?n đư?c m?t thông báo l?i trên m?t màn h?nh màu xanh trong khi kh?i đ?ng, kh?i đ?ng l?i các máy tính b?ng cách s? d?ng tùy ch?n c?u h?nh bi?t đ?n cu?i c?a t?t. Cho phép các tính năng đ?c bi?t ngoài tr?i không đư?c vi?t đ? cu?i cùng đư?c bi?t đ?n t?t C?u h?nh các m?c nh?p trong s? ki?m nh?p cho đ?n khi sau khi kí nh?p thành công.

Thu?c tính

ID c?a bài: 188831 - L?n xem xét sau cùng: 19 Tháng Tư 2013 - Xem xét l?i: 2.1
Áp d?ng
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows XP Professional
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003 Service Pack 2
  • Windows Vista Home Premium
  • Windows Vista Enterprise
  • Windows Vista Ultimate
  • Windows Vista Service Pack 2
  • Windows Server 2008 Standard
  • Windows Server 2008 Enterprise
  • Windows Server 2008 Datacenter
  • Windows Server 2008 Service Pack 2
  • Windows 7 Home Premium
  • Windows 7 Enterprise
  • Windows 7 Professional
  • Windows 7 Ultimate
  • Windows 7 Service Pack 1
  • Windows Server 2008 R2 Standard
  • Windows Server 2008 R2 Enterprise
  • Windows Server 2008 R2 Datacenter
  • Windows Server 2008 R2 Service Pack 1
T? khóa: 
kbenv kbhowto kbqfe kbmt KB188831 KbMtvi
Máy d?ch
QUAN TRỌNG: Bài viết này được d?ch b?ng phần mềm dịch thu?t của Microsoft và có thể được Cộng đồng Microsoft chỉnh sửa l?i thông qua công nghệ CTF thay vì một biên dịch viên chuyên nghiệp. Microsoft cung c?p các bài vi?t đư?c c? biên d?ch viên và ph?n m?m d?ch thu?t th?c hi?n và c?ng đ?ng ch?nh s?a l?i đ? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cơ s? Ki?n th?c c?a chúng tôi b?ng nhi?u ngôn ng? Tuy nhiên, bài vi?t do máy d?ch hoặc thậm chí cộng đồng chỉnh sửa sau không ph?i lúc nào c?ng hoàn h?o. Các bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t đ?ng s? d?ng c?a khách hàng gây ra.
Nh?p chu?t vào đây đ? xem b?n ti?ng Anh c?a bài vi?t này: 188831

Cung cấp Phản hồi

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com