Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Özel Havuz özelliği, bellek belirtilen bir havuz etiketiyle ayrıldığında veya belirtilen boyut aralığında olduğunda Windows'un ayrılmış bir bellek havuzundan bellek ayırmaları istemesini sağlar.
Abbreviation |
Spp |
Onaltılık değer |
(Yok) |
Sembolik Ad |
(Yok) |
Varış Yeri |
Sistem genelinde kayıt defteri girdisi (Windows Vista ve üzeri) Sistem genelinde kayıt defteri girdisi, çekirdek bayrağı |
Havuz Etiketi Seçme
Belirli bir havuz etiketi için özel havuz isterken sürücünüzün veya diğer çekirdek modu programınızın benzersiz bir havuz etiketi kullandığına emin olun.
Ayrıca, bir havuz etiketi oluştururken (örneğin ExAllocatePoolWithTag kullanarak), etiket karakterlerini ters sırada girmeyi göz önünde bulundurun. Örneğin, etiket Fred ise, bunu derF (0x64657246) olarak girmeyi göz önünde bulundurun. Havuz etiketleri kayıt defterinde depolanır ve hata ayıklayıcıda ve diğer araçlarda ters (alt endian) sırada görüntülenir. Bunları ters sırada girerseniz, bunlar ileri sırada görüntülenir (0x46726564)
Sürücünüzün tüm özel havuzu kullandığından şüpheleniyorsanız, kodunuzda birden çok havuz etiketi kullanmayı göz önünde bulundurun. Ardından sürücünüzü birkaç kez test edebilir ve her testte bir havuz etiketine özel havuz atayabilirsiniz.
Ayrıca, sistemin sayfa boyutundan daha büyük onaltılık değere sahip bir havuz etiketi seçin. Çekirdek modu kodu için, PAGE_SIZE'den küçük bir değere sahip bir havuz etiketi girerseniz Gflags, boyutu karşılık gelen aralık içinde olan tüm ayırmalar için özel havuz ister ve eşdeğer havuz etiketine sahip ayırmalar için özel havuz ister. Örneğin, 30 boyut seçerseniz, boyutu 17 ile 32 bayt arasındaki tüm ayırmalar ve havuz etiketi 0x0030 olan ayırmalar için özel havuz kullanılır.
Ayırma Boyutu Seçme
Özel Havuz özelliği için ayırma boyutu seçmek için aşağıdaki yönergeleri kullanın.
x86 işlemcili bir bilgisayarda PAGE_SIZE 0x1000 ve ayırma boyutu aralıkları 8 bayt uzunluğundadır. Bu aralıktaki boyutları olan tüm ayırmalar için Özel Havuz özelliğini yapılandırmak için, bu aralığın en yüksek değerine eşit bir sayı artı 8 girin. (Bu sayı her zaman 8'in katıdır.) Aşağıdaki tabloda bu değerler gösterilmektedir:
| Boyut aralığı | Bu numarayı girin |
|---|---|
1 ile 8 bayt |
10 (ondalık 16) |
9 - 16 bayt |
18 (onluk 24) |
17 - 24 bayt |
20 (decimal 32) |
... |
... |
0xFE9 bayttan 0xFF0 bayta |
FF8 (ondalık 4088) |
AMD x86-64 işlemcisi olan bir bilgisayarda PAGE_SIZE 0x1000 ve ayırma boyutu aralıkları 16 bayt uzunluğundadır. Bu aralıktaki boyuta sahip tüm ayırmalar için Özel Havuz özelliğini yapılandırmak için, bu aralığın maksimuma eşit bir sayı artı 16 girin. (Bu sayı her zaman 16'nın katıdır.) Aşağıdaki tabloda bu değerler gösterilmektedir:
| Boyut aralığı | Bu numarayı girin |
|---|---|
1 - 16 bayt |
20 (desimal 32) |
17 - 32 bayt |
30 (ondalık sayı sistemi 48) |
33 - 48 bayt |
40 (ondalık 64) |
... |
... |
0xFD1 bayttan 0xFE0 bayta |
FF0 (ondalık 4080) |
Herhangi bir işlemciye sahip bir bilgisayarda, sistemdeki tüm bellek ayırmaları için Özel Havuz özelliğini yapılandırmak için yıldız işareti ( * ) veya 0x2A (ondalık 42) kullanabilirsiniz.
açıklamaları
Genel Bayraklar İletişim Kutusunda Özel Havuz özelliğini yapılandırma hakkında bilgi için bkz. Özel Havuzu Yapılandırma. Komut satırında Özel Havuz özelliğini yapılandırma hakkında bilgi için bkz. GFlags Komutları. Örnek için bkz. Örnek 14: Özel Havuzu Yapılandırma.
Gflags'in Özel Havuz özelliği, bellek belirtilen bir havuz etiketiyle ayrıldığında veya belirtilen boyut aralığında olduğunda Windows'un ayrılmış bellek havuzundan bellek ayırmaları istemesini sağlar. Belirli bir sürücü tarafından yapılan tüm ayırmalar için özel havuz istemek için Sürücü Doğrulayıcı'yı kullanın. Daha fazla bilgi için Windows Sürücü Seti'nin (WDK) "Sürücü Doğrulayıcı" bölümündeki "Özel Havuz" konusuna bakın.
Gflags ve Sürücü Doğrulayıcı'nın özel havuz özellikleri, ayrılmış bellek alanının ötesine yazma veya zaten boşta olan belleğe başvurma gibi çekirdek havuzu kullanımındaki hataların kaynağını algılamanıza ve tanımlamanıza yardımcı olur.
Tüm özel havuz istekleri yerine getirilmiyor. Özel havuzdan yapılan her ayırma, bir sayfa sayfa dışı yapılamayan fiziksel bellek ve iki sayfa sanal adres alanı kullanır. Özel havuz tükenirse, özel havuz tekrar kullanılabilir olana kadar standart havuzdan bellek ayrılır. Standart havuzdan özel bir havuz isteği doldurulduğunda, istekte bulunan işlev bir başarı durumu döndürür. Ayırma başarılı olduğundan, özel havuzdan doldurulmamasına rağmen hata döndürmez.
Sistemdeki fiziksel bellek miktarıyla birlikte özel havuzun boyutu artar; ideal olarak bu en az 1 Gigabayt (GB) olmalıdır. x86 makinelerinde, sanal (fiziksel alana ek olarak) alan kullanıldığından, özel havuz kullanırken /3 GB önyükleme seçeneğini kullanmayın. Disk belleği dosyasının minimum/maksimum miktarlarını iki veya üç kat artırmak da iyi bir fikirdir.
Bellek ayırmadan önceki belleğe yapılan başvuruları ("öncesi taşmalar") veya ayırmanın ötesindeki belleğe yapılan başvuruları ("sonrası taşmalar") algılamak için Özel Havuz özelliğini yapılandırabilirsiniz. Bu özellik yalnızca Windows'un tüm sürümlerindeki Genel Bayraklar iletişim kutusunda kullanılabilir. Ayrıntılar için bkz. Overruns ve Underruns Algılama.
Windows Vista ve Windows'un sonraki sürümlerinde, Özel Havuz özelliğini yeniden başlatma gerektiren ancak siz değiştirene kadar etkin kalan bir kayıt defteri ayarı olarak veya yeniden başlatma gerektirmeyen ancak yalnızca Windows'un yeniden başlatılıp kapatılana kadar etkili olduğu bir çekirdek bayrağı ayarı olarak yapılandırabilirsiniz. Windows'un önceki sürümlerinde Özel Havuz yalnızca kayıt defteri ayarı olarak kullanılabilir.
Windows Vista ve Windows'un sonraki sürümlerinde, Özel Havuz özelliğini Genel Bayraklar iletişim kutusunu kullanarak veya komut satırında yapılandırabilirsiniz. Windows'un önceki sürümlerinde bu özellik yalnızca Genel Bayraklar iletişim kutusunda kullanılabilir.