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.
Aşağıdaki durdurma kodları temel test kümesinde yer alır.
Özel Durumlar Durdurma Ayrıntıları
Yürütülemeyen bellekte kod yürütmeyi deneme (ilk şans).
olası nedeniUygulama yürütülemeyen veya ücretsiz bir adresten kod çalıştırmaya çalışıyorsa bu durdurma oluşturulur. Bu durakta hata ayıklamak için:
- u <parameter2> - suçlu kodunun birleştirmesini kaldırma
- .exr <parameter3> - özel durum bilgilerini görüntüleme
- .cxr <parameter4> - özel durum bağlam bilgilerini görüntüleme
- kb - özel durumun oluştuğu zamana ait yığın izlemesini görüntüleyin.
- Parametre 1 - Adrese erişiliyor.
- Parametre 2 - Geçersiz erişim gerçekleştiren kod.
- Parametre 3 - Özel durum kaydı. Görüntülemek için .exr kullanın.
- Parametre 4 - Bağlam kaydı. Görüntülemek için .cxr kullanın.
- Test Katmanı: Özel durum
- Durdurma Kimliği: FIRST_CHANCE_ACCESS_VIOLATION_CODE
- Durdurma kodu: 650
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Durdurma Ayrıntılarını İşler
Geçerli yığın izlemesi için geçersiz tanıtıcı özel durumu.
olası nedeniYığının üstündeki işlev sistem yordamlarına geçersiz bir tanıtıcı geçirdiyse bu durdurma oluşturulur. Genellikle basit bir 'kb' komutu geçirilen tanıtıcının değerini ortaya çıkaracaktır (genellikle ilk olan parametrelerden biri olmalıdır). Değer null ise bu açıkça yanlıştır. Değer düzgün görünüyorsa, bu tanıtıcı değerle ilgili işlemlerin geçmişini almak için '!htrace' hata ayıklayıcısı uzantısını kullanmanız gerekir. Çoğu durumda, tanıtıcı değeri kapatıldıktan sonra kullanılır.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Kullanılmıyor.
- Parametre 2 - Kullanılmıyor.
- Parametre 3 - Kullanılmıyor.
- Parametre 4 - Kullanılmıyor.
- Test Katmanı: Işleme
- Durdurma Kimliği: INVALID_HANDLE
- Durdurma kodu: 300
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Geçerli yığın izlemesi için geçersiz TLS dizini kullanıldı.
olası nedeniYığının üstündeki işlev TLS sistem yordamlarına geçersiz bir TLS dizini geçirdiyse bu durdurma oluşturulur. Genellikle basit bir 'kb' komutu neyin yanlış olduğunu ortaya çıkaracaktır. Buradaki tipik hata, 'TlsAlloc' çağırmak yerine bir TLS dizini için belirli bir değer varsaymaktır. Bu durum, her zaman N değerini aldığınızı ve bu nedenle 'TlsAlloc' çağırmanıza gerek olmadığını varsayarak gerçekleşebilir. Daha sık başlatılmamış bir değişkenden kaynaklanmış olur.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Geçersiz TLS dizini.
- Parametre 2 - Dizinin alt kısmı bekleniyor.
- Parametre 3 - Kullanılmıyor.
- Parametre 4 - Kullanılmıyor.
- Test Katmanı: Işleme
- Durdurma Kimliği: INVALID_TLS_VALUE
- Durdurma kodu: 301
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
WaitForMultipleObjects çağrısı için geçersiz parametreler.
olası nedeniBu durdurma, yığının en üstündeki 'WaitForMultipleObjects' adlı işlev, tanıtıcı sayısı olarak beklenen veya sıfır olan tanıtıcı dizisinin adresi olarak NULL değeriyle oluşturulur. Basit bir 'kb' komutu, bu API'yi yanlış çağıran işlevi gösterir.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Nesne tanıtıcılarının adresi vektör.
- Parametre 2 - Tanıtıcı sayısı.
- Parametre 3 - Kullanılmıyor.
- Parametre 4 - Kullanılmıyor.
- Test Katmanı: Işleme
- Durdurma Kimliği: INCORRECT_WAIT_CALL
- Durdurma kodu: 302
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
NULL tanıtıcı parametre olarak geçirildi. Geçerli bir tanıtıcı kullanılmalıdır.
olası nedeniYığının en üstündeki işlev sistem yordamlarına null tanıtıcı geçirildiyse bu durdurma oluşturulur. Genellikle basit bir 'kb' komutu geçirilen tanıtıcının değerini ortaya çıkaracaktır (genellikle ilk olan parametrelerden biri olmalıdır).
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - NULL tutamacını kullanma
- Parametre 2 - Kullanılmıyor
- Parametre 3 - Kullanılmıyor
- Parametre 4 - Kullanılmıyor
- Test Katmanı: Işleme
- Durdurma Kimliği: NULL_HANDLE
- Durdurma kodu: 303
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
DllMain'de bir iş parçacığı tanıtıcısı bekleniyor.
olası nedeniGeçerli iş parçacığı şu anda geçerli işlemde yüklenen DLL'lerden birinin 'DllMain' işlevi içinde kod çalıştırıyorsa ve aynı işlemde bir iş parçacığı tanıtıcısında beklemek için 'WaitForSingleObject' veya 'WaitForMultipleObjects' çağrısında bulunursa bu durdurma oluşturulur. Bu büyük olasılıkla kilitlenmeye yol açar çünkü ikinci iş parçacığından çıkılmadığı sürece iş parçacığı tutamacı sinyal almayacak. İkinci iş parçacığı 'ExitThread' çağırdığında DLL yükleyici kilidini almaya çalışır ve geçerli işlemdeki tüm DLL'ler için 'DllMain' (DLL_THREAD_DETACH) çağrısı yapın. Yükleyici kilidi ilk iş parçacığına (iş parçacığı tutamacını bekleyen iş parçacığına) ait olduğundan, iki iş parçacığı kilitlenmeye neden olur.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - İş parçacığı tutamacı.
- Parametre 2 - Kullanılmıyor.
- Parametre 3 - Kullanılmıyor.
- Parametre 4 - Kullanılmıyor.
- Test Katmanı: Işleme
- Durdurma Kimliği: WAIT_IN_DLLMAIN
- Durdurma kodu: 304
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Tanıtıcı için yanlış nesne türü.
olası nedeniGeçerli iş parçacığı yanlış nesne türüne sahip bir nesnenin tanıtıcısına sahip bir API'yi çağırıyorsa bu durdurma oluşturulur. Örneğin, parametre olarak semafor tutamacı ile 'SetEvent' çağrısı bu durağı oluşturur. Bu durakta hata ayıklamak için:
- kb - geçerli yığın izlemesini görüntülemek için. Suçlu büyük olasılıkla verifier.dll'a çağıran DLL'dir
- du <parameter2> - tutamacın gerçek türünü görüntülemek için. Tanıtıcı değeri parametre1'dir. Önceki örnekte, "Semaphore" görüntülenir.
- du <parameter3> - API tarafından beklenen nesne türünü görüntülemek için. Önceki örnekte, bu ad "Olay"dır.
- !htrace <parameter1> - bu tanıtıcıdaki son açma/kapatma işlemleri için yığın izlemesini görüntülediğinden yararlı olabilir.
- Parametre 1 - Handle değeri.
- Parametre 2 - Nesne türü adı. Görüntülemek için du kullanın
- Parametre 3 - Beklenen nesne türü adı. Görüntülemek için du kullanın
- Parametre 4 - Kullanılmıyor.
- Test Katmanı: Işleme
- Durdurma Kimliği: INCORRECT_OBJECT_TYPE
- Durdurma kodu: 305
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Yığınlar Durdurma Ayrıntıları
Bilinmeyen hata.
olası nedeniKarşılaşılan hata başka bir şekilde sınıflandırılamazsa bu ileti oluşabilir. Şu anda kullanılmıyor.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Kullanılmıyor
- Parametre 2 - Kullanılmıyor
- Parametre 3 - Kullanılmıyor
- Parametre 4 - Kullanılmıyor
- Test Katmanı: Yığın
- Durdurma Kimliği: UNKNOWN_ERROR
- Durdurma kodu: 0x1
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Erişim ihlali özel durumu.
olası nedeniBu en yaygın uygulama doğrulayıcı durağıdır. Bunun nedeni genellikle arabellek taşması hatasıdır. Yığın doğrulayıcı, yığın ayırmanın sonuna erişilebilir olmayan bir sayfa yerleştirir ve arabellek taşması bu sayfaya dokunarak özel duruma neden olur. Bu durdurmada hata ayıklamak için özel duruma neden olan erişim adresini belirleyin ve ardından aşağıdaki hata ayıklayıcı komutunu kullanın:
- !heap -p -a ACCESS_ADDRESS - Bu komut, hatanın doğası ve hangi yığın bloğunun taşma ile ilgili ayrıntıları verir. Ayrıca blok ayırma için yığın izlemesini verir. Bu durdurmanın başka nedenleri de vardır, örneğin serbest bırakıldıktan sonra bir yığın bloğuna erişim. Aynı hata ayıklayıcısı komutu bu durum için yararlıdır.
- Parametre 1 - Özel duruma neden olan geçersiz adres
- Parametre 2 - Geçersiz erişimi yürüten kod adresi
- Parametre 3 - Özel durum kaydı
- Parametre 4 - Bağlam kaydı
- Test Katmanı: Yığın
- Durdurma Kimliği: ACCESS_VIOLATION
- Durdurma kodu: 0x2
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
HEAP_NO_SERIALIZE bayrağıyla oluşturulan bir yığında çok iş parçacıklı erişim.
olası nedeniHEAP_NO_SERIALIZE bayrağıyla oluşturulan yığına iki iş parçacığından aynı anda erişilmemesi gerekir. Böyle bir durum algılanırsa bu iletiyi alırsınız. Bu durumun bir programa sızmasının tipik yolu, C-runtime'ın tek iş parçacıklı sürümüyle bağlantı oluşturmaktır. Örneğin Visual C++, uygun bayraklar kullanıldığında bu tür bir kitaplığı statik olarak bağlayabilir. Geliştiriciler daha sonra bu ayrıntıyı unutup birden çok iş parçacığı kullanır. Hatanın gerçek hayatta hata ayıklaması çok zordur çünkü gizemli veri bozulmaları olarak görünecektir.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - İşlemin gerçekleştiği yığın.
- Parametre 2 - Yığın kritik bölümünün geçerli sahibi için iş parçacığı kimliği.
- Parametre 3 - Yığın girmeye çalışan geçerli iş parçacığının iş parçacığı kimliği.
- Parametre 4 - Kullanılmıyor
- Test Katmanı: Yığın
- Durdurma Kimliği: UNSYNCHRONIZED_ACCESS
- Durdurma kodu: 0x3
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Aşırı boyut isteği.
olası nedeniBir 'HeapAlloc' veya 'HeapReAlloc' işleminde bloğun boyutu herhangi bir makul değerin üzerindeyse bu ileti oluşturulur. Bu değer genellikle 32 bit platformlarda 0x80000000 ve 64 bit platformlarda önemli ölçüde büyüktür.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - İşlemin gerçekleştiği yığın.
- Parametre 2 - Boyut istendi
- Parametre 3 - Kullanılmıyor
- Parametre 4 - Kullanılmıyor
- Test Katmanı: Yığın
- Durdurma Kimliği: EXTREME_SIZE_REQUEST
- Durdurma kodu: 0x4
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Yığın tutamacı yanlış imzayla.
olası nedeniYığın yapıları sihirli bir değerle etiketlenir. Bir yığın arabirimi çağrısında kullanılan yığın tanıtıcısı bu desene sahip değilse, bu durdurma oluşturulur. Bir şekilde iç yığın yapısı bozulursa (rastgele bozulma) veya yığın tutamacı olarak sahte bir değer kullanılırsa bu hata oluşabilir. Geçerli yığın tanıtıcısı değerlerinin listesini almak için aşağıdaki hata ayıklayıcı komutunu kullanın:
- !heap -p
Bir yığın işleminde geçerli bir yığın tutamacını başka bir geçerli işleçle değiştirirseniz bu durdurmayı almazsınız (tutamaç sonuçta geçerli görünür). Ancak yığın doğrulayıcı bu durumu algılar ve SWITCHED_HEAP_HANDLE durdurma ile bildirir.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Yığın arabirimi çağrısında kullanılan yığın tutamacı
- Parametre 2 - Kullanılmıyor
- Parametre 3 - Kullanılmıyor
- Parametre 4 - Kullanılmıyor
- Test Katmanı: Yığın
- Durdurma Kimliği: BAD_HEAP_HANDLE
- Durdurma kodu: 0x5
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Bozuk yığın işaretçisi veya yanlış yığın kullanma.
olası nedeniBu durum genellikle bir blok bir yığında ayrılır ve başka bir yığında serbest kalırsa gerçekleşir. Tüm geçerli yığın tanıtıcı değerlerinin listesini almak için '!heap -p' hata ayıklayıcısı komutunu kullanın. En yaygın örnek, 'heapFree' kullanılarak bir kernel32 deallocation ile eşleştirilmiş 'malloc' kullanan bir msvcrt ayırmasıdır.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Çağrıda kullanılan yığın tutamacı.
- Parametre 2 - İşlemde yer alan yığın bloğu.
- Parametre 3 - Yığın bloğunun boyutu.
- Parametre 4 - Bloğun başlangıçta ayrıldığı yığın.
- Test Katmanı: Yığın
- Durdurma Kimliği: SWITCHED_HEAP_HANDLE
- Durdurma kodu: 0x6
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Yığın bloğu zaten serbest.
olası nedeniBlok iki kez serbest kalırsa bu durum ortaya çıkar. Serbest bloklar özel bir şekilde işaretlenir ve bir süre gecikmeli bir ücretsiz kuyrukta tutulur. Bir buggy programı bloğu yeniden boşaltmaya çalışırsa, bloğun gecikmeli boş kuyruktan çıkarılmadığını ve belleğinin diğer ayırmalar için yeniden kullanıldığı varsayılarak bu yakalanır. Gecikmesiz kuyruğun derinliği binlerce blok sırasına göredir, bu nedenle çoğu çift serbest bırakmanın yakalanma olasılığı yüksektir.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Blok sahibi yığın için yığın tutamacı.
- Parametre 2 - Yığın bloğu yeniden serbest.
- Parametre 3 - Yığın bloğunun boyutu.
- Parametre 4 - Kullanılmıyor
- Test Katmanı: Yığın
- Durdurma Kimliği: DOUBLE_FREE
- Durdurma kodu: 0x7
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Bozuk yığın bloğu.
olası nedeniBu, yığın bloğundaki bozulma daha belirli bir kategoriye yerleştirilemiyorsa verilen genel bir hatadır.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Çağrıda kullanılan yığın tutamacı.
- Parametre 2 - İşlemde yer alan yığın bloğu.
- Parametre 3 - Yığın bloğunun boyutu.
- Parametre 4 - Ayrılmış
- Test Katmanı: Yığın
- Durdurma Kimliği: CORRUPTED_HEAP_BLOCK
- Durdurma kodu: 0x8
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
İşlem yığınını yok etmeye çalışma.
olası nedeniVarsayılan işlem yığınını ('GetProcessHeap()' arabirimi tarafından döndürülen) yok etmeye çalışmak bir hatadır.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - HeapDestroy ile kullanılan yığın tutamacı.
- Parametre 2 - Kullanılmıyor
- Parametre 3 - Kullanılmıyor
- Parametre 4 - Kullanılmıyor
- Test Katmanı: Yığın
- Durdurma Kimliği: DESTROY_PROCESS_HEAP
- Durdurma kodu: 0x9
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Yığın kodunda beklenmeyen özel durum ortaya çıktı.
olası nedeniBu durdurma, yığın yöneticisi kodu yürütülürken gayri meşru durumlarda erişim ihlali oluşursa oluşturulur. Bunun tamam olduğu birkaç durum vardır, örneğin 'HeapValidate()' veya 'HeapSize()' çağrılırken. Özel durum kaydı bilgileri (üçüncü parametre), özel durumun tam bağlamını bulmak için kullanılabilir. Bunun için aşağıdaki hata ayıklayıcısı komutlarını kullanın:
- dd parametre2 L2
- .exr first_dword
- .cxr second_dword
Bu durak genellikle iç yığın yapılarında rastgele bir bozulma olduğunda gerçekleşir.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - İşlemde yer alan yığın.
- Parametre 2 - Özel durum kaydı.
- Parametre 3 - Bağlam kaydı.
- Parametre 4 - Özel durum kodu (C0000005 - erişim ihlali)
- Test Katmanı: Yığın
- Durdurma Kimliği: UNEXPECTED_EXCEPTION
- Durdurma kodu: 0xA
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Yığın bloğu üst bilgisi doğrulanırken özel durum oluştu.
olası nedeniBu durum, blok için belirli bir bozulma türünü gerçekten belirleyemediğimizde ortaya çıkar. Örneğin, yığın bloğu adresi yığın boşaltma işlemine geçirildiğinde erişilebilir olmayan bir bellek alanına (bozuk işaretçi, başlatılmamış işaretçi vb.) işaret ettiğinde gerçekleşir.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Blok sahibi yığın için yığın tutamacı.
- Parametre 2 - Bozuk yığın bloğu.
- Parametre 3 - Boyut belirlenemiyorsa bloğun boyutu veya sıfır.
- Parametre 4 - Kullanılmıyor.
- Test Katmanı: Yığın
- Durdurma Kimliği: CORRUPTED_HEAP_BLOCK_EXCEPTION_RAISED_FOR_HEADER
- Durdurma kodu: 0xB
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Yığın bloğu doğrularken özel durum oluştu.
olası nedeniBu durum, blok için belirli bir bozulma türünü gerçekten belirleyemediğimizde ortaya çıkar. Örneğin, yığın boşaltma işlemi sırasında erişilebilir olmayan bir bellek alanına işaret eden bir adres geçirirseniz bunu alırsınız. Bu durum, bloğu tam sayfa yığın blokları arasında bulamazsak ve hafif sayfa yığın bloğu olarak yoklarsak, çift ücretsiz durumlarda da oluşabilir.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Çağrıda kullanılan yığın tutamacı.
- Parametre 2 - İşlemde yer alan yığın bloğu.
- Parametre 3 - Yığın bloğunun boyutu.
- Parametre 4 - Ayrılmış.
- Test Katmanı: Yığın
- Durdurma Kimliği: CORRUPTED_HEAP_BLOCK_EXCEPTION_RAISED_FOR_PROBING
- Durdurma kodu: 0xC
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Boşaltıldıktan sonra yığın bloğu bozuldu.
olası nedeniBu durum, boşaltıldıktan sonra bir bellek bloğunun yazılması durumunda ortaya çıkar.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Blok sahibi yığın için yığın tutamacı.
- Parametre 2 - Bozuk yığın bloğu.
- Parametre 3 - Boyut belirlenemiyorsa bloğun boyutu veya sıfır.
- Parametre 4 - Kullanılmıyor.
- Test Katmanı: Yığın
- Durdurma Kimliği: CORRUPTED_HEAP_BLOCK_HEADER
- Durdurma kodu: 0xD
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Serbest yığın bloğu için bozuk infix deseni.
olası nedeniSerbest bloklar bazen erişilebilir değil olarak işaretlenir ve bunlara dokunan bir program ihlale (farklı doğrulayıcı durdurma) erişecektir. Diğer durumlarda (örneğin, hafif sayfa yığını) blok sihirli bir desenle işaretlenir ve bir süre saklanır. Sonunda bir FIFO moda bloklar gerçekten özgür olsun. Şu anda infix deseni denetlenir ve değiştirildiğinde bu kesmeyi alırsınız. Kesme anındaki yığın ilgili değildir. Bloğun niteliğini bulmanız ve kodun yanlış olabilecek kodu gözden geçirmesi gerekir.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Blok sahibi yığın için yığın tutamacı.
- Parametre 2 - Öbek bloğu serbest.
- Parametre 3 - Yığın bloğunun boyutu.
- Parametre 4 - Ayrılmış.
- Test Katmanı: Yığın
- Durdurma Kimliği: CORRUPTED_FREED_HEAP_BLOCK
- Durdurma kodu: 0xE
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Yığın bloğu için bozuk sonek deseni.
olası nedeniBu durum genellikle arabellek taşması hataları için gerçekleşir. Bazen uygulama doğrulayıcı, ayırma ve arabellek taşmalarının sonuna erişilebilir olmayan sayfalar yerleştirir, erişim ihlaline neden olur ve bazen yığın bloğunun ardından sihirli bir desen gelir. Blok serbest olduğunda bu desen değiştirilirse bu kesmeyi alırsınız. Bozulmanın gerçekleştiği an olmadığı için bu kesmelerin hatalarını ayıklamak oldukça zor olabilir. Yalnızca boş ana (yani "burada oldu" gibi) ve ayırma yığını izlemesine ('!yığın -p -a HEAP_ADDRESS') erişebilirsiniz
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Çağrıda kullanılan yığın tutamacı.
- Parametre 2 - İşlemde yer alan yığın bloğu.
- Parametre 3 - Yığın bloğunun boyutu.
- Parametre 4 - Ayrılmış.
- Test Katmanı: Yığın
- Durdurma Kimliği: CORRUPTED_HEAP_BLOCK_SUFFIX
- Durdurma kodu: 0xF
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Yığın bloğu için bozuk başlangıç damgası.
olası nedeniBu, arabellek alt çalıştırmaları için gerçekleşir.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Çağrıda kullanılan yığın tutamacı.
- Parametre 2 - İşlemde yer alan yığın bloğu.
- Parametre 3 - Yığın bloğunun boyutu.
- Parametre 4 - Bozuk damga değeri.
- Test Katmanı: Yığın
- Durdurma Kimliği: CORRUPTED_HEAP_BLOCK_START_STAMP
- Durdurma kodu: 0x10
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Yığın bloğu için bozuk uç damgası.
olası nedeniBu, arabellek alt çalıştırmaları için gerçekleşir.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Çağrıda kullanılan yığın tutamacı.
- Parametre 2 - İşlemde yer alan yığın bloğu.
- Parametre 3 - Yığın bloğunun boyutu.
- Parametre 4 - Bozuk damga değeri.
- Test Katmanı: Yığın
- Durdurma Kimliği: CORRUPTED_HEAP_BLOCK_END_STAMP
- Durdurma kodu: 0x11
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Yığın bloğu için bozuk ön ek deseni.
olası nedeniBu, arabellek alt çalıştırmaları için gerçekleşir.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Çağrıda kullanılan yığın tutamacı.
- Parametre 2 - İşlemde yer alan yığın bloğu.
- Parametre 3 - Yığın bloğunun boyutu.
- Parametre 4 - Ayrılmış.
- Test Katmanı: Yığın
- Durdurma Kimliği: CORRUPTED_HEAP_BLOCK_PREFIX
- Durdurma kodu: 0x12
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Geçerli yığın izleme için ilk şans erişim ihlali.
olası nedeniBu en yaygın uygulama doğrulayıcı durağıdır. Bunun nedeni genellikle arabellek taşması hatasıdır. Yığın doğrulayıcı, yığın ayırmanın sonuna erişilebilir olmayan bir sayfa yerleştirir ve arabellek taşması bu sayfaya dokunarak özel duruma neden olur. Bu durdurmada hata ayıklamak için özel duruma neden olan erişim adresini belirleyin ve ardından aşağıdaki hata ayıklayıcı komutunu kullanın:
- !yığın -p -a ACCESS_ADDRESS
Bu komut, hatanın yapısı ve hangi yığın bloğunun taşacağı hakkında ayrıntılı bilgi verir. Ayrıca blok ayırma için yığın izlemesi verir. Bu durdurmanın, örneğin serbest bırakıldıktan sonra bir yığın bloğuna erişmenin başka nedenleri de vardır. Aynı hata ayıklayıcısı komutu bu durum için yararlı olacaktır.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Özel duruma neden olan geçersiz adres.
- Parametre 2 - Geçersiz erişimi yürüten kod adresi.
- Parametre 3 - Özel durum kaydı.
- Parametre 4 - Bağlam kaydı.
- Test Katmanı: Yığın
- Durdurma Kimliği: FIRST_CHANCE_ACCESS_VIOLATION
- Durdurma kodu: 0x13
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Geçersiz işlem yığın listesi sayısı.
olası nedeniGetProcessHeaps çağrılırken sayfa yığın yöneticisi bazı iç tutarsızlıklar algılarsa bu ileti oluşabilir. Bunun nedeni işlem alanında rastgele bir bozulma olabilir.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Gerçek yığın sayısı.
- Parametre 2 - Sayfa yığın sayısı.
- Parametre 3 - Kullanılmıyor
- Parametre 4 - Kullanılmıyor
- Test Katmanı: Yığın
- Durdurma Kimliği: CORRUPTED_HEAP_LIST
- Durdurma kodu: 0x14
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Sızıntı Durdurma Ayrıntıları
Yığın ayırması sızdırıldı.
olası nedeniBu durdurma, kaynaklara sahipken ayırmanın sahip dll'sinin dinamik olarak kaldırılması durumunda oluşturulur.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Sızdırılan ayırmanın adresi. Ayırma hakkında ek bilgi almak için !heap -p -a <adresini> çalıştırın.
- Parametre 2 - Ayırma yığını izlemesinin adresi. Ayırma yığınını görüntülemek için dps <adresini> çalıştırın.
- Parametre 3 - Sahip dll adının adresi. Dll adını okumak için du <address> komutunu çalıştırın.
- Parametre 4 - Sahip dll'sinin tabanı. Sahip dll dosyasını yeniden yüklemek için .reload <dll_name> = <address> komutunu çalıştırın. Yüklenen ve kaldırılan modüller hakkında daha fazla bilgi edinmek için 'lm' kullanın.
- Test Katmanı: Sızıntı
- Durdurma Kimliği: AYIRMA
- Durdurma kodu: 0x900
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Tanıtıcı sızdırıldı.
olası nedeniBu durdurma, tanıtıcının sahip dll'i kaynaklara sahipken dinamik olarak kaldırıldıysa oluşturulur. Bu durağın hatalarını ayıklamak için: Tanıtıcı hakkında ek bilgi almak için !htrace parameter1 komutunu çalıştırın.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Sızdırılan tutamacın değeri. tanıtıcı izleme< etkinse tanıtıcı hakkında ek bilgi almak için !htrace >tutamacını çalıştırın.
- Parametre 2 - Ayırma yığını izlemesinin adresi. Ayırma yığınını görüntülemek için dps <adresini> çalıştırın.
- Parametre 3 - Sahip dll adının adresi. Dll adını okumak için du <address> komutunu çalıştırın.
- Parametre 4 - Sahip dll'sinin tabanı. Sahip dll dosyasını yeniden yüklemek için .reload <dll_name> = <address> komutunu çalıştırın. Yüklenen ve kaldırılan modüller hakkında daha fazla bilgi edinmek için 'lm' kullanın.
- Test Katmanı: Sızıntı
- Durdurma Kimliği: KULP
- Durdurma kodu: 0x901
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Bir HKEY sızdırıldı.
olası nedeniBu durdurma, kayıt defteri anahtarının sahip dll'i kaynaklara sahipken dinamik olarak kaldırıldıysa oluşturulur.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Sızdırılan HKEY değeri.
- Parametre 2 - Ayırma yığını izlemesinin adresi. Ayırma yığınını görüntülemek için dps <adresini> çalıştırın.
- Parametre 3 - Sahip dll adının adresi. Dll adını okumak için du <address> komutunu çalıştırın.
- Parametre 4 - Sahip dll'sinin tabanı. Sahip dll dosyasını yeniden yüklemek için .reload <dll_name> = <address> komutunu çalıştırın. Yüklenen ve kaldırılan modüller hakkında daha fazla bilgi edinmek için 'lm' kullanın.
- Test Katmanı: Sızıntı
- Durdurma Kimliği: KAYIT DEFTERİ
- Durdurma kodu: 0x902
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Sanal rezervasyon sızdırıldı.
olası nedeniBu durdurma, sanal rezervasyonun sahip dll'i kaynaklara sahipken dinamik olarak kaldırıldıysa oluşturulur.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Sızdırılan rezervasyon adresi.
- Parametre 2 - Ayırma yığını izlemesinin adresi. Ayırma yığınını görüntülemek için dps <adresini> çalıştırın.
- Parametre 3 - Sahip dll adının adresi. Dll adını okumak için du <address> komutunu çalıştırın.
- Parametre 4 - Sahip dll'sinin tabanı. Sahip dll dosyasını yeniden yüklemek için .reload <dll_name> = <address> komutunu çalıştırın. Yüklenen ve kaldırılan modüller hakkında daha fazla bilgi edinmek için 'lm' kullanın.
- Test Katmanı: Sızıntı
- Durdurma Kimliği: VIRTUAL_RESERVATION
- Durdurma kodu: 0x903
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
BSTR sızdırıldı.
olası nedeniBu durdurma, SysString'in sahip dll'i kaynaklara sahipken dinamik olarak kaldırıldıysa oluşturulur.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Sızdırılan BSTR'nin adresi. Ayırma hakkında ek bilgi almak için !heap -p -a <adresini> çalıştırın.
- Parametre 2 - Ayırma yığını izlemesinin adresi. Ayırma yığınını görüntülemek için dps <adresini> çalıştırın.
- Parametre 3 - Sahip dll adının adresi. Dll adını okumak için du <address> komutunu çalıştırın.
- Parametre 4 - Sahip dll'sinin tabanı. Sahip dll dosyasını yeniden yüklemek için .reload <dll_name> = <address> komutunu çalıştırın. Yüklenen ve kaldırılan modüller hakkında daha fazla bilgi edinmek için 'lm' kullanın.
- Test Katmanı: Sızıntı
- Durdurma Kimliği: SYSSTRING
- Durdurma kodu: 0x904
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Güç bildiriminin kaydı kaldırılmadı.
olası nedeniBu durdurma, dll güç bildirimi için kaydedildiyse ve kaydı kaldırılmadan dinamik olarak kaldırıldıysa oluşturulur.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Güç bildirimi kaydının adresi.
- Parametre 2 - Kayıt yığını izlemesinin adresi. Ayırma yığınını görüntülemek için dps <adresini> çalıştırın.
- Parametre 3 - Sahip dll adının adresi. Dll adını okumak için du <address> komutunu çalıştırın.
- Parametre 4 - Sahip dll'sinin tabanı. Sahip dll dosyasını yeniden yüklemek için .reload <dll_name> = <address> komutunu çalıştırın. Yüklenen ve kaldırılan modüller hakkında daha fazla bilgi edinmek için 'lm' kullanın.
- Test Katmanı: Sızıntı
- Durdurma Kimliği: POWER_NOTIFICATION
- Durdurma kodu: 0x905
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Durdurma Ayrıntılarını Kilitler
İş parçacığı kritik bir bölüme sahip olamaz.
olası nedeniBir iş parçacığı (iş parçacığı kimliği parametre1) sonlandırılırsa, askıya alınırsa veya kritik bir bölümü barındıramadığı bir durumdaysa (çalışan iş parçacığı bir iş öğesini bitirdi) bu durdurma oluşturulur. Geçerli iş parçacığı suçludur. Bu durdurmada hata ayıklamak için aşağıdaki hata ayıklayıcı komutlarını kullanın:
- kb - geçerli yığın izlemesini almak için. Geçerli iş parçacığı kritik bölümün sahibiyse büyük olasılıkla ExitThread çağrısı yapıyordur. Geçerli iş parçacığı çıkmadan önce kritik bölümü serbest bırakmalıdır. Geçerli iş parçacığı TerminateThread veya SuspendThread'i çağırıyorsa, kritik bir bölümü tutan bir iş parçacığı için bunu yapmamalıdır.
- !cs -s <parameter2> - bu kritik bölüm hakkında bilgi dökümü.
- ln <parameter2> - kritik bölümün adresinin yakınında sembolleri göstermek için. Bu, sızdırılan kritik bölümü belirlemeye yardımcı olmalıdır.
- dps <parameter4> - bu kritik bölüm başlatma için yığın izlemesinin dökümünü almak için.
- Parametre 1 - İş Parçacığı Kimliği.
- Parametre 2 - Kritik bölüm adresi.
- Parametre 3 - Kritik bölüm hata ayıklama bilgileri adresi.
- Parametre 4 - Kritik bölüm başlatma yığını izlemesi.
- Test Katmanı: Kilit
- Durdurma Kimliği: EXIT_THREAD_OWNS_LOCK
- Durdurma kodu: 0x200
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Etkin bir kritik bölüm içeren DLL'nin kaldırılması.
olası nedeniBir DLL'nin kritik bölümü içeren bir genel değişkeni varsa ve DLL kaldırılırsa ancak kritik bölüm silinmediyse bu durdurma oluşturulur. Bu durdurmada hata ayıklamak için aşağıdaki hata ayıklayıcı komutlarını kullanın:
- du <parameter3> - suçlu DLL'nin adını döküm etmek için.
- .reload dllname veya .reload dllname = <parameter4> - bu DLL'nin simgelerini yeniden yüklemek için.
- !cs -s <parametre1> - bu kritik bölüm hakkındaki döküm bilgileri.
- ln <parameter1> - kritik bölümün adresinin yakınında sembolleri göstermek için. Bu, sızdırılan kritik bölümü belirlemeye yardımcı olmalıdır.
- dps <parameter2> - bu kritik bölüm başlatma için yığın izlemesinin dökümünü almak için.
- Parametre 1 - Kritik bölüm adresi.
- Parametre 2 - Kritik bölüm başlatma yığını izlemesi.
- Parametre 3 - DLL ad adresi.
- Parametre 4 - DLL temel adresi.
- Test Katmanı: Kilit
- Durdurma Kimliği: LOCK_IN_UNLOADED_DLL
- Durdurma kodu: 0x201
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Etkin bir kritik bölüm içeren yığın bloğu serbest.
olası nedeniYığın ayırması kritik bir bölüm içeriyorsa, ayırma serbest bırakılırsa ve kritik bölüm silinmediyse bu durdurma oluşturulur. Bu durdurmada hata ayıklamak için aşağıdaki hata ayıklayıcı komutlarını kullanın:
- !cs -s <(parametre1)> - bu kritik bölüm hakkındaki bilgi dökümü.
- ln <parameter1> - kritik bölümün adresinin yakınında sembolleri göstermek için. Bu, sızdırılan kritik bölümü belirlemeye yardımcı olmalıdır.
- dps <parameter2> - bu kritik bölüm başlatma için yığın izlemesinin dökümünü almak için.
- < parameter3> ve <parameter4> , bu yığın bloğunun nereye ayrıldığını anlamanıza yardımcı olabilir (ayırmanın boyutu büyük olasılıkla önemlidir).
- Parametre 1 - Kritik bölüm adresi.
- Parametre 2 - Kritik bölüm başlatma yığını izlemesi.
- Parametre 3 - Yığın blok adresi.
- Parametre 4 - Yığın blok boyutu.
- Test Katmanı: Kilit
- Durdurma Kimliği: LOCK_IN_FREED_HEAP
- Durdurma kodu: 0x202
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Çift başlatılan veya bozuk kritik bölüm.
olası nedeniBu durak genellikle kritik bir bölüm birden fazla kez başlatıldıysa oluşturulur. Bu durumda parameter3 ve parameter4, bu başlatmaların ikisi için yığın izleme adresleridir. Bazı durumlarda kritik bölüm veya hata ayıklama bilgileri yapısı bozulmuşsa bu durdurmayı almak mümkündür. Bu ikinci durumda parametre3 ve parametre4 geçersiz ve işe yaramaz olabilir. Bu durakta hata ayıklamak için:
- !cs -s -d <parametre2> - bu kritik bölüm hakkındaki döküm bilgileri.
- ln <parameter1> - kritik bölümün adresinin yakınında sembolleri göstermek için. Bu, genel bir değişkense kritik bölümü tanımlamaya yardımcı olabilir.
- dps <parameter3> ve dps <parameter4> - bu kritik bölümü başlatmak için iki kod yolunu tanımlamak için.
- Parametre 1 - Kritik bölüm adresi.
- Parametre 2 - Etkin listede bulunan hata ayıklama bilgileri yapısının adresi.
- Parametre 3 - İlk başlatma yığını izlemesi.
- Parametre 4 - İkinci başlatma yığını izlemesi.
- Test Katmanı: Kilit
- Durdurma Kimliği: LOCK_DOUBLE_INITIALIZE
- Durdurma kodu: 0x203
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Etkin bir kritik bölüm içeren boş bellek.
olası nedeniKritik bir bölümü içeren bellek serbest bırakılırsa ancak kritik bölüm DeleteCriticalSection kullanılarak silinmediyse bu durdurma oluşturulur. Bu durdurmada hata ayıklamak için aşağıdaki hata ayıklayıcı komutlarını kullanın:</p.>
- !cs -s -d <parametre2> - bu kritik bölüm hakkındaki döküm bilgileri.
- dps <parameter3> - bu kritik bölümü başlatmaya yönelik kod yolunu tanımlamak için.
Çoğu durumda kilit doğrulayıcı yığın ayırma, DLL aralığı, sanal bellek ayırma veya Eşlenen MapViewOfFile bellek aralığında bulunan kritik bölümlerin hemen sızdırılmış olduğunu algılar ve bu durumlarda farklı duraklar verir. Bu nedenle bu doğrulayıcı durağı için çok az durum kaldı. Kilit, çekirdek modu kodu tarafından serbest bir bellek aralığında veya VirtualFreeEx gibi API'ler tarafından serbestleştirilmiş çapraz işlem olmalıdır. Hata ayıklayıcı konsolunda 'g' düğmesine basılarak önceki bir durak (örneğin, LOCK_IN_FREED_HEAP veya LOCK_IN_UNLOADED_DLL) devam ettiyse, genellikle bu durakla karşılaşılır.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Kritik bölüm adresi.
- Parametre 2 - Kritik bölüm hata ayıklama bilgileri adresi.
- Parametre 3 - Kritik bölüm başlatma yığını izlemesi.
- Parametre 4 - Kullanılmıyor.
- Test Katmanı: Kilit
- Durdurma Kimliği: LOCK_IN_FREED_MEMORY
- Durdurma kodu: 0x204
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Bozuk kritik bölüm.
olası nedeniBu durdurma, kritik bölümün DebugInfo alanı boş belleği işaret ediyorsa oluşturulur. Etkin kritik bölüm listesinde genellikle başka bir geçerli DebugInfo yapısı bulunur. Bozulma olmadan iki işaretçi aynı olmalıdır. Bu durdurmada hata ayıklamak için aşağıdaki hata ayıklayıcı komutlarını kullanın:
- !cs -s -d <parametre3> - Etkin listede bulunan hata ayıklama bilgi yapısının geçerli içeriğine dayalı olarak bu kritik bölümle ilgili bilgi dökümü (bu yapı nadiren bozulur, bu nedenle genellikle bu bilgiler güvenilirdir).
- !cs -s <parametre1> - Kritik bölüm yapısının geçerli içeriğine göre bu kritik bölüm hakkındaki döküm bilgileri (yapı zaten bozuktur, bu nedenle bazen bu bilgiler güvenilir DEĞİlDR).
- dps <parameter4> - bu kritik bölümü başlatmaya yönelik kod yolunu tanımlamak için.
Address <parameter1'deki> kritik bölümün dökümünü alın ve bozulma desenini arayın. ntdll.dl için iyi simgelerle aşağıdaki komutları kullanabilirsiniz:
- dt ntdll!_RTL_CRITICAL_SECTION LOCK_ADDRESS
- dt ntdll!_RTL_CRITICAL_SECTION_DEBUG DEBUG_ADDRESS
- Parametre 1 - Kritik bölüm adresi.
- Parametre 2 - Bu kritik bölümün geçersiz hata ayıklama bilgileri adresi.
- Parametre 3 - Etkin listede bulunan hata ayıklama bilgilerinin adresi.
- Parametre 4 - Başlatma yığını izlemesi.
- Test Katmanı: Kilit
- Durdurma Kimliği: LOCK_CORRUPTED
- Durdurma kodu: 0x205
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Geçersiz kritik bölüm sahibi iş parçacığı.
olası nedeniSahip iş parçacığı kimliği geçerli bağlamda geçersizse bu durdurma oluşturulur. Bu durakta hata ayıklamak için:
- !cs -s <parametre1> - bu kritik bölüm hakkındaki döküm bilgileri.
- ln <parameter1> - kritik bölümün adresinin yakınında sembolleri göstermek için. Bu, kritik bölümü tanımlamaya yardımcı olmalıdır.
- Parametre 1 - Kritik bölüm adresi.
- Parametre 2 - Sahip olan iş parçacığı.
- Parametre 3 - Beklenen sahip olan iş parçacığı.
- Parametre 4 - Kritik bölüm hata ayıklama bilgi adresi.
- Test Katmanı: Kilit
- Durdurma Kimliği: LOCK_INVALID_OWNER
- Durdurma kodu: 0x206
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Geçersiz kritik bölüm özyineleme sayısı.
olası nedeniKritik bölüm yapısının özyineleme sayısı alanı geçerli bağlamda geçersizse bu durdurma oluşturulur. Bu durakta hata ayıklamak için:
- !cs -s <parametre1> - bu kritik bölüm hakkındaki döküm bilgileri.
- ln <parameter1> - kritik bölümün adresinin yakınında sembolleri göstermek için. Bu, kritik bölümü tanımlamaya yardımcı olmalıdır.
- Parametre 1 - Kritik bölüm adresi.
- Parametre 2 - Özyineleme sayısı.
- Parametre 3 - Beklenen özyineleme sayısı.
- Parametre 4 - Kritik bölüm hata ayıklama bilgi adresi.
- Test Katmanı: Kilit
- Durdurma Kimliği: LOCK_INVALID_RECURSION_COUNT
- Durdurma kodu: 0x207
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Geçersiz kilit sayısı olan kritik bölüm siliniyor.
olası nedeniBu durdurma, kritik bir bölüm silinirse veya kritik bölüm başlatılmamışsa bir iş parçacığına aitse oluşturulur. Bu durakta hata ayıklamak için:
- !cs -s <parametre1> - bu kritik bölüm hakkındaki döküm bilgileri. Sahip olan iş parçacığı 0 ise kritik bölüm başlatılmamıştır.
- ln <parameter1> - kritik bölümün adresinin yakınında sembolleri göstermek için. Bu, kritik bölümü tanımlamaya yardımcı olmalıdır.
- Parametre 1 - Kritik bölüm adresi.
- Parametre 2 - Kilit sayısı.
- Parametre 3 - Beklenen kilit sayısı.
- Parametre 4 - Sahip olan iş parçacığı.
- Test Katmanı: Kilit
- Durdurma Kimliği: LOCK_INVALID_LOCK_COUNT
- Durdurma kodu: 0x208
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Kritik bölüm fazla yayımlandı veya bozuk.
olası nedeniKritik bir bölüm geçerli iş parçacığının aldığından daha fazla kez yayınlanırsa bu durdurma oluşturulur. Bu durakta hata ayıklamak için:
- !cs -s <parametre1> - bu kritik bölüm hakkındaki döküm bilgileri.
- !cs -s -d <parameter4> - bu kritik bölüm hakkındaki döküm bilgileri.
- ln <parameter1> - kritik bölümün adresinin yakınında sembolleri göstermek için. Bu, kritik bölümü tanımlamaya yardımcı olmalıdır.
- Parametre 1 - Kritik bölüm adresi.
- Parametre 2 - Kilit sayısı.
- Parametre 3 - Beklenen kilit sayısı.
- Parametre 4 - Kritik bölüm hata ayıklama bilgi adresi.
- Test Katmanı: Kilit
- Durdurma Kimliği: LOCK_OVER_RELEASED
- Durdurma kodu: 0x209
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Kritik bölüm başlatılmadı.
olası nedeniBu durdurma, kritik bir bölüm başlatılmadan veya silindikten sonra kullanılıyorsa oluşturulur. Bu durakta hata ayıklamak için:
- ln <parameter1> - kritik bölümün adresinin yakınında sembolleri göstermek için. Bu, kritik bölümü tanımlamaya yardımcı olmalıdır.
- Parametre 1 - Kritik bölüm adresi.
- Parametre 2 - Kritik bölüm hata ayıklama bilgi adresi.
- Parametre 3 - Kullanılmıyor.
- Parametre 4 - Kullanılmıyor.
- Test Katmanı: Kilit
- Durdurma Kimliği: LOCK_NOT_INITIALIZED
- Durdurma kodu: 0x210
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Kritik bölüm zaten başlatıldı.
olası nedeniKritik bir bölüm geçerli iş parçacığı tarafından yeniden başlatılırsa bu durdurma oluşturulur. Bu durakta hata ayıklamak için:
- !cs -s <parametre1> veya !cs -s -d <parametre2> - bu kritik bölüm hakkındaki bilgi dökümü.
- ln <parameter1> - kritik bölümün adresinin yakınında sembolleri göstermek için. Bu, genel bir değişkense kritik bölümü tanımlamaya yardımcı olabilir.
- dps <parameter3> - bu kritik bölümün ilk başlatılması için kod yolunu tanımlamak için.
- kb - bu kritik bölümü yeniden başlatan geçerli yığın izlemesini görüntülemek için.
- Parametre 1 - Kritik bölüm adresi.
- Parametre 2 - Kritik bölüm hata ayıklama bilgi adresi.
- Parametre 3 - İlk başlatma yığını izlemesi. NULL değilse dökümünü almak için dps kullanın
- Parametre 4 - Kullanılmıyor.
- Test Katmanı: Kilit
- Durdurma Kimliği: LOCK_ALREADY_INITIALIZED
- Durdurma kodu: 0x211
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Etkin bir kritik bölüm içeren sanal belleği boşaltma.
olası nedeniGeçerli iş parçacığı etkin bir kritik bölüm içeren bir bellek bloğunda VirtualFree'yi çağırıyorsa bu durdurma oluşturulur. Bu belleği boşaltmadan önce uygulamanın bu kritik bölümde DeleteCriticalSection çağrısı yapması gerekir.
- kb - VirtualFree'yi çağıran geçerli yığın izlemesini görüntülemek için. Olası suçlu, VirtualFree'yi çağıran DLL'dir.
- !cs -s <parametre1> - bu kritik bölüm hakkındaki döküm bilgileri.
- dps <parameter2> - bu kritik bölümün başlatılmasına yönelik kod yolunu tanımlamak için.
- Parametre 1 - Kritik bölüm adresi.
- Parametre 2 - Kritik bölüm başlatma yığını izlemesi.
- Parametre 3 - Bellek bloğu adresi.
- Parametre 4 - Bellek bloğu boyutu.
- Test Katmanı: Kilit
- Durdurma Kimliği: LOCK_IN_FREED_VMEM
- Durdurma kodu: 0x212
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Etkin bir kritik bölüm içeren bellek bölgesinin eşlemesini kaldırma.
olası nedeniGeçerli iş parçacığı etkin bir kritik bölüm içeren bir bellek bloğunda UnmapViewOfFile'ı çağırıyorsa bu durdurma oluşturulur. Uygulama, bu belleğin eşlemesini kaldırmadan önce bu kritik bölümde DeleteCriticalSection'ı çağırmalıdır.
- kb - UnmapViewOfFile'ı çağıran geçerli yığın izlemesini görüntülemek için. Olası suçlu, UnmapViewOfFile'ı çağıran DLL'dir.
- !cs -s <parametre1> - bu kritik bölüm hakkındaki döküm bilgileri.
- dps <parameter2> - bu kritik bölümün başlatılmasına yönelik kod yolunu tanımlamak için.
- Parametre 1 - Kritik bölüm adresi.
- Parametre 2 - Kritik bölüm başlatma yığını izlemesi.
- Parametre 3 - Bellek bloğu adresi.
- Parametre 4 - Bellek bloğu boyutu.
- Test Katmanı: Kilit
- Durdurma Kimliği: LOCK_IN_UNMAPPED_MEM
- Durdurma kodu: 0x213
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Geçerli iş parçacığı kritik bölümlere sahip değil.
olası nedeniGeçerli iş parçacığı LeaveCriticalSection'ı çağırıyorsa ancak iç doğrulayıcı kayıt defterine göre herhangi bir kritik bölüme sahip değilse bu durdurma oluşturulur. \<parameter2\> sıfırsa, büyük olasılıkla bu geçerli iş parçacığındaki bir hatadır. Girmemiş olduğu kritik bir bölümü bırakmaya çalışır veya aynı kritik bölüm için EnterCriticalSection adından daha fazla kez LeaveCriticalSection çağrısı yapıyor olabilir. \<parameter2\> sıfır değilse (negatif bir tamsayıdır) iç doğrulayıcı veri yapıları büyük olasılıkla bozuktur.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Kritik bölüm adresi.
- Parametre 2 - Geçerli iş parçacığına ait kritik bölümlerin sayısı.
- Parametre 3 - Kullanılmıyor
- Parametre 4 - Kullanılmıyor
- Test Katmanı: Kilit
- Durdurma Kimliği: THREAD_NOT_LOCK_OWNER
- Durdurma kodu: 0x214
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Başka bir DLL'ye özel kritik bölümü kullanma.
olası nedeniGeçerli iş parçacığı başka bir DLL içinde bulunan özel bir kilit kullanmayı denerse bu durdurma oluşturulur. Örneğin, a.dll ntdll.dlliçinde tanımlanan kritik bir bölüm girmeye çalışır. Özel kilitler DLL'ler arasında kullanılamaz.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Kritik bölüm adresi.
- Parametre 2 - Kullanılmıyor.
- Parametre 3 - Kullanılmıyor
- Parametre 4 - Kullanılmıyor
- Test Katmanı: Kilit
- Durdurma Kimliği: LOCK_PRIVATE
- Durdurma kodu: 0x215
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
SRWLock Durdurma Ayrıntıları
SRW Kilidi başlatılmadı.
olası nedeniBu durdurma, bir iş parçacığı başlatılmamış SRW kilidini (Param1) kullanmaya çalışıyorsa oluşturulur. Bu durdurmada hata ayıklamak için geçerli yığın izlemesini almak için 'kb' kullanın. SRW kilidi burada kullanılıyor. SRW kilidi kullanılmadan önce 'InitializeSRWLock' kullanılarak başlatılmalıdır.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - SRW Kilidi
- Parametre 2 - Kullanılmıyor
- Parametre 3 - Kullanılmıyor
- Parametre 4 - Kullanılmıyor
- Test Katmanı: SRWLock
- Durdurma Kimliği: NOT_INITIALIZED
- Durdurma kodu: 0x250
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
SRW Lock zaten başlatıldı.
olası nedeniSRW kilidi (Param1) yeniden başlatılıyorsa bu durdurma oluşturulur. SRW kilidi diğer iş parçacıkları tarafından etkin bir şekilde kullanılıyorsa, kilidin yeniden başlatılması uygulama tarafından askıda kalmalar ve kilitlenmeler gibi öngörülemeyen davranışlara neden olur. Başlatma yığını izlemesi, SRW kilidi statik olarak başlatıldıysa alma işlemini gösterebilir. Bu durakta hata ayıklamak için:
- kb - geçerli yığın izlemesini almak için. SRW kilidi burada yeniden başlatılıyor.
- dps <parameter3> - SRW kilit başlatma yığını izlemesini almak için. Bu yığın izlemesi, kilit statik olarak başlatıldıysa alma işlemini gösterebilir.
- Parametre 1 - SRW Kilidi
- Parametre 2 - SRW kilidini başlatan iş parçacığının ThreadId değeri.
- Parametre 3 - Başlatma yığını izlemesinin adresi. SRW kilidinin nereden başlatıldığını görmek için dps <adresini> kullanın.
- Parametre 4 - Kullanılmıyor
- Test Katmanı: SRWLock
- Durdurma Kimliği: ALREADY_INITIALIZED
- Durdurma kodu: 0x251
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
SRW kilidinde eşleşmeyen Acquire-Release.
olası nedeniSRW kilidi (Param1) yanlış bir yayın API'siyle yayınlanıyorsa bu durdurma oluşturulur. SRW kilidi paylaşılan erişim için alındıysa ve özel sürüm API'sini kullanarak yayınlanıyorsa veya SRW kilidi özel erişim için alındıysa ve paylaşılan yayın API'sini kullanarak yayınlanıyorsa. Bu, uygulama tarafından askıda kalmalar ve kilitlenmeler de dahil olmak üzere öngörülemeyen davranışlara neden olabilir. Bu durakta hata ayıklamak için:
- kb - geçerli yığın izlemesini almak için. Burada SRW kilidi yanlış API kullanılarak serbest bırakılıyor.
- dps <parameter3> - SRW kilidini almak için yığın izlemesini alın.
- Parametre 1 - SRW Kilidi
- Parametre 2 - SRW kilidini alan iş parçacığının ThreadId değeri.
- Parametre 3 - Alma yığını izlemesinin adresi. SRW kilidinin nereden alındığını görmek için dps <adresini> kullanın.
- Parametre 4 - Kullanılmıyor
- Test Katmanı: SRWLock
- Durdurma Kimliği: MISMATCHED_ACQUIRE_RELEASE
- Durdurma kodu: 0x252
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
SRW kilidi aynı iş parçacığı tarafından özyinelemeli olarak alınıyor.
olası nedeniSRW kilidi (Param1) aynı iş parçacığı tarafından özyinelemeli olarak alınıyorsa bu durdurma oluşturulur. Bu kilitlenmeye neden olur ve iş parçacığı süresiz olarak engellenir. Özel modda bir SRW kilidinin özyinelemeli olarak alınması kilitlenmeye neden olur. Paylaşılan modda bir SRW kilidinin özyinelemeli olarak alınması, özel erişim için bekleyen bir iş parçacığı olduğunda kilitlenmeye neden olur. Aşağıdaki örneği göz önünde bulundurun: - İş Parçacığı A paylaşılan modda SRW kilidini alır - İş Parçacığı B, SRW kilidini özel modda almaya çalışır ve bekler - İş Parçacığı A, paylaşılan modda SRW kilidini yinelemeli olarak almaya çalışır. Özel garson olmadığı sürece (bu durumda B) bu işlem başarılı olur. SRW kilitlerinde yazar açlığı olmadığından, iş parçacığı A, B iş parçacığının arkasında bekler. Şimdi, İş Parçacığı B, döngüsel beklemeye ve dolayısıyla kilitlenmeye neden olan İş Parçacığı B'yi bekleyen İş Parçacığı A'yı bekliyor. Bu durakta hata ayıklamak için:
- kb - geçerli yığın izlemesini almak için. Burası SRW kilidinin özyinelemeli olarak alındığı yerdir.
- dps <parametre2> - ilk alma için yığın izlemesini almak için.
- Parametre 1 - SRW Kilidi
- Parametre 2 - İlk alma yığını izlemesinin adresi. SRW kilidinin nereden alındığını görmek için dps <adresini> kullanın.
- Parametre 3 - Kullanılmıyor
- Parametre 4 - Kullanılmıyor
- Test Katmanı: SRWLock
- Durdurma Kimliği: RECURSIVE_ACQUIRE
- Durdurma kodu: 0x253
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Çıkmakta veya sonlandırılmakta olan iş parçacığı bir SRW kilidine sahiptir.
olası nedeniBu durdurma, SRW kilidine (Param1) sahip olan iş parçacığı (Param2) çıkılıyorsa veya sonlandırılıyorsa oluşturulur. Bu, yalnız bırakılmış bir SRW kilidine neden olur ve bu kilidi almaya çalışan iş parçacıkları süresiz olarak engellenir. Durağında hata ayıklamak için:
- kb - geçerli yığın izlemesini almak için. İş parçacığının çıktığı veya sonlandırıldığı yer burasıdır.
- dps <parameter3> - SRW kilidini almak için yığın izlemesini alın.
- Parametre 1 - SRW Kilidi
- Parametre 2 - Çıkmakta veya sonlandırılmakta olan iş parçacığının ThreadId değeri.
- Parametre 3 - Alma yığını izlemesinin adresi. SRW kilidinin nereden alındığını görmek için dps <adresini> kullanın.
- Parametre 4 - Kullanılmıyor
- Test Katmanı: SRWLock
- Durdurma Kimliği: EXIT_THREAD_OWNS_LOCK
- Durdurma kodu: 0x254
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Serbest bırakılan SRW kilidi bu iş parçacığı tarafından alınmadı.
olası nedeniBu durdurma, SRW kilidi (Param1) kilidi almayan iş parçacığı (Param2) tarafından serbest bırakılıyorsa oluşturulur. Bu, doğru olması zor olan ve uygulama tarafından öngörülemeyen davranışlara yol açabilen kötü programlama uygulamasını temsil eder. Bu durakta hata ayıklamak için:
- kb - geçerli yığın izlemesini almak için. burası, iş parçacığının almadığı SRW kilidini serbest bıraktığı yerdir.
- dps <parameter4> - SRW kilidini almak için yığın izlemesini alın.
- Parametre 1 - SRW Kilidi
- Parametre 2 - Geçerli ThreadId.
- Parametre 3 - SRW kilidini alan iş parçacığının ThreadId değeri.
- Parametre 4 - Alma yığını izlemesinin adresi. SRW kilidinin nereden alındığını görmek için dps <adresini> kullanın.
- Test Katmanı: SRWLock
- Durdurma Kimliği: INVALID_OWNER
- Durdurma kodu: 0x255
- Önem Derecesi: Uyarısı
- Tek seferlik hata:
- Hata raporu: Yok
- Dosyaya : evet
- Geri iz oluşturma: evet
Boşaltılan bellek etkin bir SRW kilidi içerir.
olası nedeniSerbest bırakılmakta olan bellek adresi (Param1) hala kullanımda olan etkin bir SRW kilidi içeriyorsa bu durdurma oluşturulur. Bu, uygulama tarafından kilitlenmeler ve kilitlenmeler de dahil olmak üzere öngörülemeyen davranışlara neden olabilir. Bu durakta hata ayıklamak için:
- kb - geçerli yığın izlemesini almak için. Burası, etkin bir SRW kilidi içeren belleğin boşaltıldığı yerdir.
- dps <parameter4> - SRW kilidini almak için yığın izlemesini alın.
- Parametre 1 - SRW Kilidi
- Parametre 2 - Boşaltılan belleğin adresi.
- Parametre 3 - SRW kilidini alan iş parçacığının ThreadId değeri.
- Parametre 4 - Alma yığını izlemesinin adresi. SRW kilidinin nereden alındığını görmek için dps <adresini> kullanın.
- Test Katmanı: SRWLock
- Durdurma Kimliği: IN_FREED_MEMORY
- Durdurma kodu: 0x256
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Kaldırılan DLL etkin bir SRW kilidi içeriyor.
olası nedeniKaldırılan DLL (Param2) hala kullanımda olan etkin bir SRW kilidi (Param1) içeriyorsa bu durdurma oluşturulur. Bu, uygulama tarafından kilitlenmeler ve kilitlenmeler de dahil olmak üzere öngörülemeyen davranışlara neden olabilir. Bu durakta hata ayıklamak için:
- kb - geçerli yığın izlemesini almak için. Bu, etkin bir SRW kilidi içeren DLL'nin kaldırıldığı yerdir.
- du <parameter2> - kaldırılmakta olan DLL'nin adını bulmak için.
- dps <parameter4> - SRW kilidini almak için yığın izlemesini alın.
- Parametre 1 - SRW Kilidi
- Parametre 2 - Kaldırılmakta olan DLL'nin adının adresi. Adı görmek için du <address> komutunu kullanın.
- Parametre 3 - SRW kilidini alan iş parçacığının ThreadId değeri.
- Parametre 4 - Alma yığını izlemesinin adresi. SRW kilidinin nereden alındığını görmek için dps <adresini> kullanın.
- Test Katmanı: SRWLock
- Durdurma Kimliği: IN_UNLOADED_DLL
- Durdurma kodu: 0x257
- Önem Derecesi: Uyarısı
- Tek seferlik hata:
- Hata raporu: Yok
- Dosyaya : evet
- Geri iz oluşturma: evet
Bellek Durdurma Ayrıntıları
Sanal bellek bloğu geçersiz boyutta veya başlangıç adresinde serbest.
olası nedeniBu durdurma, uygulama doğrulayıcı geçersiz bir başlangıç adresi veya bellek ayırma boyutuyla bir VirtualFree veya DLL yüklemesi algılarsa oluşturulur. DLL'nin kaldırılması durumunda bu büyük olasılıkla yüklenen DLL listesinde bellek bozulması anlamına gelir. Bu durdurma hatasını ayıklamak için geçerli yığın izlemesine ve serbest bırakmak üzere olan bellek adresine ve boyutuna bakın ve bunların neden geçersiz olduğunu belirlemeye çalışın.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Ayırma temel adresi.
- Parametre 2 - Bellek bölgesi boyutu.
- Parametre 3 - Kullanılmıyor.
- Parametre 4 - Kullanılmıyor.
- Test Katmanı: Bellek
- Durdurma Kimliği: INVALID_FREEMEM
- Durdurma kodu: 0x600
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Yanlış sanal ayırıcı çağrısı.
olası nedeniBu durdurma, uygulama doğrulayıcı geçersiz bir başlangıç adresi veya bellek ayırma boyutuna sahip bir VirtualAlloc çağrısı algılarsa oluşturulur. Bu durakta hata ayıklamak için geçerli yığın izlemesine (kb) ve ayrılmak üzere olan bellek adresine ve boyutuna bakın ve bunların neden geçersiz olduğunu belirlemeye çalışın.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Ayırma temel adresinin işaretçisi.
- Parametre 2 - Bellek bölgesi boyutu işaretçisi.
- Parametre 3 - Kullanılmıyor
- Parametre 4 - Kullanılmıyor
- Test Katmanı: Bellek
- Durdurma Kimliği: INVALID_ALLOCMEM
- Durdurma kodu: 0x601
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Yanlış harita görünümü çağrısı.
olası nedeniBu durdurma, uygulama doğrulayıcı geçersiz bir temel adres veya eşleme boyutuyla mapViewOfFile çağrısı algılarsa oluşturulur. Bu durdurma hatasını ayıklamak için geçerli yığın izlemesine (kb) ve eşlenmek üzere olan bellek adresine ve boyutuna bakın ve bunların neden geçersiz olduğunu belirlemeye çalışın.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Eşleme temel adresi işaretçisi.
- Parametre 2 - Boyutu görüntüleme işaretçisi.
- Parametre 3 - Kullanılmıyor.
- Parametre 4 - Kullanılmıyor.
- Test Katmanı: Bellek
- Durdurma Kimliği: INVALID_MAPVIEW
- Durdurma kodu: 0x602
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Geçersiz adres yoklama.
olası nedeniUygulama doğrulayıcı, bellek arabelleğinin yoklanması için geçersiz bir adresle (örneğin, normal bir kullanıcı modu adresi yerine çekirdek modu adresi) bir IsBadXXXPtr çağrısı algılarsa bu durdurma oluşturulur. Bu durdurma hatasını ayıklamak için geçerli yığın izlemesine (kb) bakın ve IsBadXXXPtr işlevini çağıranın neden geçersiz bir adresle sonuçlanacağını belirlemeye çalışın. Çoğu zaman adres düz sahtedir, örneğin başlatılmamış bir işaretçidir. MSDN kitaplığı, uygulamaların IsBadXXXPtr API'lerini kullanmamasının birkaç nedenini listeler: Önceden duyarlı bir çoklu görev ortamında, başka bir iş parçacığının işlemin test edilen belleğe erişimini değiştirmesi mümkündür. Geçersiz olabilecek işaretçilerin başvurularını kaldırma, diğer iş parçacıklarında yığın genişletmeyi devre dışı bırakabilir. Yığın genişletme devre dışı bırakıldığında yığınını tüketen bir iş parçacığı, açılır hata penceresi veya tanılama bilgileri olmadan üst işlemin hemen sonlandırılmasına neden olur. Bir işlemdeki iş parçacıklarının, birinin diğerinin ihtiyaç duyduğu belleği boşaltmayacak şekilde işbirliği yapması beklenir. Bu işlevin kullanılması, bunu yapma gereksinimini olumsuz etkilemez. Bu yapılmazsa, uygulama öngörülemeyen bir şekilde başarısız olabilir. Tüm bu nedenlerden dolayı, bu API'leri asla kullanmamanızı öneririz.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Başlangıç adresi.
- Parametre 2 - Bellek bloğu boyutu.
- Parametre 3 - Geçersiz adres.
- Parametre 4 - Kullanılmıyor.
- Test Katmanı: Bellek
- Durdurma Kimliği: PROBE_INVALID_ADDRESS
- Durdurma kodu: 0x603
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Boş belleği yoklama.
olası nedeniBu durdurma, uygulama doğrulayıcı boş bellek ayırma için bir IsBadXXXPtr çağrısı algılarsa oluşturulur. Bu çok kötü bir durumdur çünkü başka bazı durumlarda bu belleğin başka bir ayırma için zaten yeniden kullanılması mümkündür. Geçerli kod yolu (kb) bu belleğe sahip olmadığından, başka birinin belleğini bozabilir ve bu da feci etkilere yol açabilir. Bu hata ayıklamak için geçerli yığın izlemesine (kb) bakın ve IsBadXXXPtr işlevini çağıranın neden boş bellek yoklamasına neden sonlanacağını belirlemeye çalışın. Adres düz sahte (örneğin başlatılmamış işaretçi) veya bellek boşaltılmış olabilir. Bellek VirtualFree veya UnmapViewOfFile API'lerinden biri tarafından zaten serbest bırakıldıysa, '!avrf -vs -a parameter3', bu adresi ayıran/boşaltan kod yollarının yığın izlemelerinin günlüğünü arar ve varsa bu yığın izlemelerini görüntüler. Bu, bu belleği boşaltan yığın izlemesini gösterebilir. Daha sık, bellek zaten boşaltılmış bir yığın ayırmadır. Bu olasılığı denetlemek için '!avrf -hp -a parameter3', bu adresi yığından/yığından ayıran/boşaltan kod yollarının yığın izlemelerinin günlüğünü arar ve varsa bu yığın izlemelerini görüntüler. MSDN kitaplığı, uygulamaların IsBadXXXPtr API'lerini kullanmamasının birkaç nedenini listeler: Önceden duyarlı bir çoklu görev ortamında, başka bir iş parçacığının işlemin test edilen belleğe erişimini değiştirmesi mümkündür. Geçersiz olabilecek işaretçilerin başvurularını kaldırma, diğer iş parçacıklarında yığın genişletmeyi devre dışı bırakabilir. Yığın genişletme devre dışı bırakıldığında yığınını tüketen bir iş parçacığı, açılır hata penceresi veya tanılama bilgileri olmadan üst işlemin hemen sonlandırılmasına neden olur. Bir işlemdeki iş parçacıklarının, birinin diğerinin ihtiyaç duyduğu belleği boşaltmayacak şekilde işbirliği yapması beklenir. Bu işlevin kullanılması, bunu yapma gereksinimini olumsuz etkilemez. Bu yapılmazsa, uygulama öngörülemeyen bir şekilde başarısız olabilir. Tüm bu nedenlerden dolayı, bu API'leri asla kullanmamanızı öneririz.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Başlangıç adresi.
- Parametre 2 - Bellek bloğu boyutu.
- Parametre 3 - Boş bellek sayfasının adresi.
- Parametre 4 - Kullanılmıyor.
- Test Katmanı: Bellek
- Durdurma Kimliği: PROBE_FREE_MEM
- Durdurma kodu: 0x604
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Bir koruma sayfasını yoklama.
olası nedeniUygulama doğrulayıcı en az bir GUARD_PAGE içeren bir bellek ayırma için IsBadXXXPtr çağrısı algılarsa bu durdurma oluşturulur. Bu çok kötü çünkü bu GUARD_PAGE bir iş parçacığının geçerli yığınının sonu olabilir. MSDN kitaplığında belirtildiği gibi: Geçersiz olabilecek işaretçilerin başvurusunu kaldırma, diğer iş parçacıklarında yığın genişletmeyi devre dışı bırakabilir. Yığın genişletme devre dışı bırakıldığında yığınını tüketen bir iş parçacığı, açılır hata penceresi veya tanılama bilgileri olmadan üst işlemin hemen sonlandırılmasına neden olur. Bu hata ayıklamak için geçerli yığın izlemesine (kb) bakın ve IsBadXXXPtr işlevini çağıranın neden bir GUARD_PAGE yoklamayı sonlandırdığını belirlemeye çalışın. MSDN kitaplığı, uygulamaların IsBadXXXPtr API'lerini kullanmamasının birkaç nedenini listeler: Önceden duyarlı bir çoklu görev ortamında, başka bir iş parçacığının işlemin test edilen belleğe erişimini değiştirmesi mümkündür. Geçersiz olabilecek işaretçilerin başvurularını kaldırma, diğer iş parçacıklarında yığın genişletmeyi devre dışı bırakabilir. Yığın genişletme devre dışı bırakıldığında yığınını tüketen bir iş parçacığı, açılır hata penceresi veya tanılama bilgileri olmadan üst işlemin hemen sonlandırılmasına neden olur. Bir işlemdeki iş parçacıklarının, birinin diğerinin ihtiyaç duyduğu belleği boşaltmayacak şekilde işbirliği yapması beklenir. Bu işlevin kullanılması, bunu yapma gereksinimini olumsuz etkilemez. Bu yapılmazsa, uygulama öngörülemeyen bir şekilde başarısız olabilir. Tüm bu nedenlerden dolayı, bu API'leri asla kullanmamanızı öneririz.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Başlangıç adresi.
- Parametre 2 - Bellek bloğu boyutu.
- Parametre 3 - Koruma sayfasının adresi.
- Parametre 4 - Kullanılmıyor.
- Test Katmanı: Bellek
- Durdurma Kimliği: PROBE_GUARD_PAGE
- Durdurma kodu: 0x605
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
NULL adresi yoklama.
olası nedeniBu durdurma, uygulama doğrulayıcı null adresli bir IsBadXXXPtr çağrısı algılarsa oluşturulur. Bu durdurma hatalarını ayıklamak için geçerli yığın izlemesine (kb) bakın ve IsBadXXXPtr işlevini çağıranın neden NULL adresiyle sonuçlanacağını belirlemeye çalışın. Bu genellikle birinin bellek ayırma işlevlerinden birinin dönüş değerini denetlemediğinin işaretidir. Örneğin aşağıdaki kod yanlıştır:
void Use(PVOID p);
int main(void) {
PVOID p;
p = malloc(1024);
Use(p);
return 0;
}
void Use(PVOID p) {
if (IsBadReadPtr(p)) {
return;
}
// p is safe to be used here.
}
Bu kod şu şekilde yeniden yazılmalıdır:
int main (void)
{
PVOID p;
p = malloc (1024);
if (NULL == p)) {
return -1;
}
Use (p);
return 0;
}
void Use (PVOID p)
{
//
// p is safe to be used here.
//
}
MSDN kitaplığı, uygulamaların IsBadXXXPtr API'lerini kullanmamasının birkaç nedenini listeler: Önceden duyarlı bir çoklu görev ortamında, başka bir iş parçacığının işlemin test edilen belleğe erişimini değiştirmesi mümkündür. Geçersiz olabilecek işaretçilerin başvurularını kaldırma, diğer iş parçacıklarında yığın genişletmeyi devre dışı bırakabilir. Yığın genişletme devre dışı bırakıldığında yığınını tüketen bir iş parçacığı, açılır hata penceresi veya tanılama bilgileri olmadan üst işlemin hemen sonlandırılmasına neden olur. Bir işlemdeki iş parçacıklarının, birinin diğerinin ihtiyaç duyduğu belleği boşaltmayacak şekilde işbirliği yapması beklenir. Bu işlevin kullanılması, bunu yapma gereksinimini olumsuz etkilemez. Bu yapılmazsa, uygulama öngörülemeyen bir şekilde başarısız olabilir. Tüm bu nedenlerden dolayı, bu API'leri asla kullanmamanızı öneririz.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Kullanılmıyor.
- Parametre 2 - Kullanılmıyor.
- Parametre 3 - Kullanılmıyor.
- Parametre 4 - Kullanılmıyor.
- Test Katmanı: Bellek
- Durdurma Kimliği: PROBE_NULL
- Durdurma kodu: 0x606
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Geçersiz başlangıç adresi veya boyutuyla bellek bloğu yoklama.
olası nedeniBu durdurma, uygulama doğrulayıcı geçersiz bir başlangıç adresi (normal kullanıcı modu adresi yerine çekirdek modu adresi) veya bellek arabelleğinin yoklanması için geçersiz boyuta sahip bir IsBadXXXPtr çağrısı algılarsa oluşturulur. Bu durdurma hatasını ayıklamak için geçerli yığın izlemesine (kb) bakın ve IsBadXXXPtr işlevini çağıranın neden geçersiz bir adres veya boyutla sonuçlanacağını belirlemeye çalışın. Çoğu zaman adres veya boyut düz sahtedir; örneğin başlatılmamış değişkenlerdir. MSDN kitaplığı, uygulamaların IsBadXXXPtr API'lerini kullanmamasının birkaç nedenini listeler: Önceden duyarlı bir çoklu görev ortamında, başka bir iş parçacığının işlemin test edilen belleğe erişimini değiştirmesi mümkündür. Geçersiz olabilecek işaretçilerin başvurularını kaldırma, diğer iş parçacıklarında yığın genişletmeyi devre dışı bırakabilir. Yığın genişletme devre dışı bırakıldığında yığınını tüketen bir iş parçacığı, açılır hata penceresi veya tanılama bilgileri olmadan üst işlemin hemen sonlandırılmasına neden olur. Bir işlemdeki iş parçacıklarının, birinin diğerinin ihtiyaç duyduğu belleği boşaltmayacak şekilde işbirliği yapması beklenir. Bu işlevin kullanılması, bunu yapma gereksinimini olumsuz etkilemez. Bu yapılmazsa, uygulama öngörülemeyen bir şekilde başarısız olabilir. Tüm bu nedenlerden dolayı, bu API'leri asla kullanmamanızı öneririz.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Başlangıç adresi.
- Parametre 2 - Bellek bloğu boyutu.
- Parametre 3 - Kullanılmıyor.
- Parametre 4 - Kullanılmıyor.
- Test Katmanı: Bellek
- Durdurma Kimliği: PROBE_INVALID_START_OR_SIZE
- Durdurma kodu: 0x607
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Geçersiz boyuta veya başlangıç adresine sahip DLL'nin kaldırılması.
olası nedeniBu durdurma, uygulama doğrulayıcı dll bellek aralığının geçersiz bir başlangıç adresi veya boyutuyla bir DLL yüklemesini algılarsa oluşturulur. Bu büyük olasılıkla iç ntdll.dll yüklenen DLL listesinde bellek bozulması anlamına gelir.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - DLL bellek temel adresi.
- Parametre 2 - DLL bellek aralığı boyutu.
- Parametre 3 - DLL ad adresi. Çöp atmak için du kullanın.
- Parametre 4 - Kullanılmıyor.
- Test Katmanı: Bellek
- Durdurma Kimliği: INVALID_DLL_RANGE
- Durdurma kodu: 0x608
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Geçerli iş parçacığının yığın adres aralığı içindeki bellek bloğu serbest.
olası nedeniBu durdurma, uygulama doğrulayıcı geçerli iş parçacığı yığınının (!) parçası olan bir bellek bloğu için VirtualFree algılarsa oluşturulur. Bu durdurma hatasını ayıklamak için geçerli yığın izlemesine (kb) bakın ve VirtualFree adlı işlevin neden bellek bloğunun dinamik olarak ayrıldığını veya eşlendiğini ama bunun aslında yığından ayrılan bellek olduğunu düşündüğünü anlamaya çalışın.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Ayırma temel adresi.
- Parametre 2 - Bellek bölgesi boyutu.
- Parametre 3 - Stack düşük sınır adresi.
- Parametre 4 - Stack üst sınır adresi.
- Test Katmanı: Bellek
- Durdurma Kimliği: FREE_THREAD_STACK_MEMORY
- Durdurma kodu: 0x609
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
VirtualFree işlemi için yanlış FreeType parametresi.
olası nedeniUygulama doğrulayıcı, FreeType parametresi için yanlış değere sahip bir VirtualFree algılarsa bu durdurma oluşturulur. Bu parametre için kabul edilebilir yalnızca iki değer MEM_DECOMMIT ve MEM_RELEASE. VirtualFree bu ikisi dışında başka bir değerle çağrılırsa, VirtualFree belleği boşaltamaz. Bu durdurma hatasını ayıklamak için geçerli yığın izlemesine (kb) bakın: VirtualFree çağıranı büyük olasılıkla suçludur.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Uygulama tarafından kullanılan yanlış değer.
- Parametre 2 - Beklenen doğru değer 1.
- Parametre 3 - Beklenen doğru değer 2.
- Parametre 4 - Kullanılmıyor.
- Test Katmanı: Bellek
- Durdurma Kimliği: INVALID_FREE_TYPE
- Durdurma kodu: 0x60A
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Zaten ücretsiz olan sanal bellek bloğunu boşaltmaya çalışıyor.
olası nedeniBu durdurma, uygulama doğrulayıcı zaten ücretsiz olan bir adres için virtualfree algılarsa oluşturulur. Bu durdurma hatasını ayıklamak için geçerli yığın izlemesine (kb) bakın ve belleğin neden boş olduğunu ancak uygulamanın neden yeniden boşaltmaya çalıştığını belirlemeyi deneyin. '!avrf -vs -a parameter1', bu adresi ayıran/boşaltan kod yollarının yığın izlemelerinin günlüğünü arar ve varsa bu yığın izlemelerini görüntüler. Bu, bu belleği boşaltan yığın izlemesini gösterebilir.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Bellek bloğu adresi.
- Parametre 2 - Kullanılmıyor.
- Parametre 3 - Kullanılmıyor.
- Parametre 4 - Kullanılmıyor.
- Test Katmanı: Bellek
- Durdurma Kimliği: MEM_ALREADY_FREE
- Durdurma kodu: 0x60B
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
VirtualFree (MEM_RELEASE) işlemi için Yanlış Boyut parametresi.
olası nedeniBu durdurma, uygulama doğrulayıcı dwSize parametresi için sıfır olmayan bir değere sahip bir VirtualFree (MEM_RELEASE) algılarsa oluşturulur. MEM_RELEASE kullanırken, bu parametre için kabul edilebilir tek değer 0'dır. VirtualFree, 0 dışında başka bir değerle çağrılırsa, VirtualFree belleği boşaltmaz. Bu durdurma hatasını ayıklamak için geçerli yığın izlemesine (kb) bakın: VirtualFree çağıranı büyük olasılıkla suçludur.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Uygulama tarafından kullanılan boyut yanlış.
- Parametre 2 - Beklenen doğru boyut (0).
- Parametre 3 - Kullanılmıyor.
- Parametre 4 - Kullanılmıyor.
- Test Katmanı: Bellek
- Durdurma Kimliği: INVALID_FREE_SIZE
- Durdurma kodu: 0x60C
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
DLL giriş noktası yordamında beklenmeyen özel durum oluşturuldu.
olası nedeniDll'nin giriş noktası (DllMain) işlevi özel durum oluşturduğunda bu durdurma oluşturulur. Bunun kötü olmasının bir örneği şudur: DllMain(DLL_PROCESS_ATTACH) bir özel durum oluşturursa, Windows DLL yükleyicisi şunları yapacaktır: - Özel durumu yakalayın ve gizleyin; - DllMain(DLL_PROCESS_DETACH) çağrısı yapmadan DLL'yi kaldırın. Bu nedenle çoğu durumda DLL zaten bazı kaynaklar ayırmış, ardından özel durumu tetiklemiş ve bu kaynakları DllMain'de (DLL_PROCESS_DETACH) serbest bırakma şansı olmayacaktır. Bu durakta hata ayıklamak için:
- **du \<*parameter1*\>** - DLL adını görüntülemek için. - **.exr \<*parameter2*\>** - özel durum bilgilerini görüntülemek için. - **.cxr \<*parameter3*\>** ve ardından **kb** - özel durumun oluşturulduğu zamana ilişkin özel durum bağlam bilgilerini ve yığın izlemesini görüntülemek için. - **\<*parameter4*\>** bir iç doğrulayıcı yapısının adresidir ve doğrulayıcı kullanıcılarının çoğu için herhangi bir önemi yoktur. Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - DLL adı (dökümünü almak için du kullanın).
- Parametre 2 - Özel durum kaydı. Görüntülemek için .exr kullanın.
- Parametre 3 - Bağlam kaydı. Görüntülemek için .cxr kullanın.
- Parametre 4 - Verifier dll tanımlayıcısı
- Test Katmanı: Bellek
- Durdurma Kimliği: DLL_UNEXPECTED_EXCEPTION
- Durdurma kodu: 0x60D
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
İş parçacığı işlevinde beklenmeyen özel durum ortaya çıktı.
olası nedeniBir iş parçacığı işlevi özel durum oluşturursa bu durdurma oluşturulur. Bu kötü çünkü tüm süreç sonlandırılacak. Bu durakta hata ayıklamak için:
- < parametre1> , özel durum türü için önemli olabilir. Örneğin özel durum kodu C0000005 Erişim İhlali anlamına gelir.
- .exr <parameter2> - özel durum bilgilerini görüntülemek için.
- Özel durum bağlam bilgilerini görüntülemek için .cxr <parameter3> ve ardından kb -
- Parametre 1 - Özel durum kodu.
- Parametre 2 - Özel durum kaydı. Görüntülemek için .exr kullanın.
- Parametre 3 - Bağlam kaydı. Görüntülemek için .cxr kullanın.
- Parametre 4 - Kullanılmıyor.
- Test Katmanı: Bellek
- Durdurma Kimliği: THREAD_UNEXPECTED_EXCEPTION
- Durdurma kodu: 0x60E
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Bellek yoklama sırasında beklenmeyen özel durum oluştu.
olası nedeniIsBadXXXPtr çağrısı sırasında bir özel durum alırsak bu durdurma oluşturulur. Bu, yokladığımız bellek arabelleğinin aslında çağıran tarafından varsayılan korumaya sahip olmadığı veya belleğin zaten serbest olduğu vb. anlamına gelir. IsBadXXXPtr API'lerinin kullanılmasının neden önerilmediğine ilişkin daha fazla örnek için yukarıdaki diğer durdurma kodu (PROBE_INVALID_ADDRESS, PROBE_FREE_MEM, PROBE_GUARD_PAGE, PROBE_NULL, PROBE_INVALID_START_OR_SIZE) hakkındaki tartışmaya bakın. Bu durakta hata ayıklamak için:
- < parametre1> genellikle C0000005, bir Erişim İhlali olur
- .exr <parameter2> - özel durum bilgilerini görüntülemek için
- .cxr <parameter3> ve ardından kb - özel durum bağlam bilgilerini ve özel durumun oluşturulduğu sırada yığın izlemesini görüntülemek için
- Parametre 1 - Özel durum kodu.
- Parametre 2 - Özel durum kaydı. Görüntülemek için .exr kullanın.
- Parametre 3 - Bağlam kaydı. Görüntülemek için .cxr kullanın.
- Parametre 4 - Kullanılmıyor
- Test Katmanı: Bellek
- Durdurma Kimliği: PROBE_UNEXPECTED_EXCEPTION
- Durdurma kodu: 0x60F
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
NULL adresi sıfırlanmaya çalışılıyor.
olası nedeniUygulama doğrulayıcı ilk parametresi NULL olan bir VirtualFree (MEM_RESET) çağrısı algılarsa bu durdurma oluşturulur. MEM_RESET yalnızca önceden ayrılmış bellek için kullanılmalıdır, bu nedenle NULL bu durumda geçerli bir ilk parametre değildir.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Kullanılmıyor.
- Parametre 2 - Kullanılmıyor.
- Parametre 3 - Kullanılmıyor.
- Parametre 4 - Kullanılmıyor.
- Test Katmanı: Bellek
- Durdurma Kimliği: INVALID_MEM_RESET
- Durdurma kodu: 0x610
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Geçerli iş parçacığının yığın adres aralığı içindeki yığın bellek bloğu serbest.
olası nedeniBu durdurma, uygulama doğrulayıcı geçerli iş parçacığı yığınının (!) parçası olan bir bellek bloğu için heapFree algılarsa oluşturulur. Bu durağın hatalarını ayıklamak için geçerli yığın izlemesine (kb) bakın ve HeapFree adlı işlevin neden bellek bloğunun dinamik olarak ayrıldığını veya eşlendiğini ama bunun aslında yığından ayrılan bellek olduğunu düşündüğünü anlamaya çalışın.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Ayırma temel adresi.
- Parametre 2 - Bellek bölgesi boyutu.
- Parametre 3 - Stack düşük sınır adresi.
- Parametre 4 - Stack üst sınır adresi.
- Test Katmanı: Bellek
- Durdurma Kimliği: FREE_THREAD_STACK_MEMORY_AS_HEAP
- Durdurma kodu: 0x612
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Geçerli iş parçacığının yığın adres aralığı içindeki bellek bölgesinin eşlemesi kaldırılmış.
olası nedeniBu durdurma, uygulama doğrulayıcı geçerli iş parçacığı yığınının (!) parçası olan bir bellek bloğu için UnmapViewOfFile algılarsa oluşturulur. Bu durağın hatalarını ayıklamak için geçerli yığın izlemesine (kb) bakın ve UnmapViewOfFile adlı işlevin neden bellek bloğunun dinamik olarak ayrıldığını veya eşlendiğini ama bunun aslında yığından ayrılan bellek olduğunu düşündüğünü anlamaya çalışın.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Ayırma temel adresi.
- Parametre 2 - Bellek bölgesi boyutu.
- Parametre 3 - Stack düşük sınır adresi.
- Parametre 4 - Stack üst sınır adresi.
- Test Katmanı: Bellek
- Durdurma Kimliği: FREE_THREAD_STACK_MEMORY_AS_MAP
- Durdurma kodu: 0x613
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Yanlış RTL_RESOURCE adresi.
olası nedeniUygulama, geçerli bir nesnenin adresi olarak NULL veya başka bir yanlış adres (örn. çekirdek modu adresi) kullanmaya çalışıyorsa bu durdurma oluşturulur. RtlInitializeResource (NULL), bu tür bir doğrulayıcı durdurmasını tetikleyecek yanlış bir API çağrısıdır. *Parametre1* kullanılan yanlış adrestir ve suçlu yığın izlemesindedir (kb ile görüntüleyin).
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Adres.
- Parametre 2 - Kullanılmıyor.
- Parametre 3 - Kullanılmıyor.
- Parametre 4 - Kullanılmıyor.
- Test Katmanı: Bellek
- Durdurma Kimliği: INVALID_RESOURCE_ADDRESS
- Durdurma kodu: 0x614
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Geçersiz kritik bölüm adresi.
olası nedeniUygulama, geçerli bir nesnenin adresi olarak NULL veya başka bir yanlış adres (örn. çekirdek modu adresi) kullanmaya çalışıyorsa bu durdurma oluşturulur. EnterCriticalSection(NULL), bu tür bir doğrulayıcı durdurmasını tetikleyecek yanlış bir API çağrısıdır. *Parametre1* kullanılan yanlış adrestir ve suçlu yığın izlemesindedir (kb ile görüntüleyin).
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Adres.
- Parametre 2 - Kullanılmıyor.
- Parametre 3 - Kullanılmıyor.
- Parametre 4 - Kullanılmıyor.
- Test Katmanı: Bellek
- Durdurma Kimliği: INVALID_CRITSECT_ADDRESS
- Durdurma kodu: 0x615
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Yürütülemeyen bellekte kod yürütmeyi deneme.
olası nedeniUygulama yürütülemeyen veya ücretsiz bir adresten kod çalıştırmaya çalışıyorsa bu durdurma oluşturulur. Bu durakta hata ayıklamak için:
- u <parameter2> - suçlu kodunun bir araya getirmek için
- .exr <parameter3> - özel durum bilgilerini görüntülemek için
- .cxr <parameter4> ve ardından kb - özel durum bağlam bilgilerini ve özel durumun oluşturulduğu zamana ilişkin yığın izlemesini görüntülemek için.
- Parametre 1 - Adrese erişiliyor.
- Parametre 2 - Geçersiz erişim gerçekleştiren kod.
- Parametre 3 - Özel durum kaydı. Görüntülemek için .exr kullanın.
- Parametre 4 - Bağlam kaydı. Görüntülemek için .cxr kullanın.
- Test Katmanı: Bellek
- Durdurma Kimliği: THREAD_UNEXPECTED_EXCEPTION_CODE
- Durdurma kodu: 0x616
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Çıkış arabelleği başlatılırken beklenmeyen özel durum oluştu.
olası nedeniWin32 veya CRT API'si için çıkış parametresi olarak belirtilen bir arabelleği başlatırken bir özel durum alırsak bu durdurma oluşturulur. Bu genellikle belirtilen çıkış arabelleği boyutunun yanlış olduğu anlamına gelir. Bu durakta hata ayıklamak için:
- .exr <parameter3> - özel durum bilgilerini görüntülemek için.
- .cxr <parameter4> ve ardından kb - özel durum bağlam bilgilerini ve özel durumun oluşturulduğu sırada yığın izlemesini görüntülemek için.
- Parametre 1 - Arabellek başlangıç adresi.
- Parametre 2 - Arabellek boyutu.
- Parametre 3 - Özel durum kaydı. Görüntülemek için .exr kullanın.
- Parametre 4 - Bağlam kaydı. Görüntülemek için .cxr kullanın.
- Test Katmanı: Bellek
- Durdurma Kimliği: OUTBUFF_UNEXPECTED_EXCEPTION
- Durdurma kodu: 0x617
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Yığın bloğu boyutunu bulmaya çalışırken beklenmeyen özel durum.
olası nedeniBu durdurma, serbest bırakılmakta olan bir yığın bloğu için HeapSize çağrılırken bir özel durum alırsak oluşturulur. Bu genellikle belirtilen yığın bloğu adresinin yanlış olduğu veya yığının bozuk olduğu anlamına gelir. Bu durakta hata ayıklamak için:
- .exr <parameter3> - özel durum kaydını görüntülemek için.
- .cxr <parameter4> ve ardından kb - özel durum bağlam bilgilerini ve özel durumun oluşturulduğu sırada yığın izlemesini görüntülemek için.
- Parametre 1 - Boşaltılan yığın bloğunun adresi.
- Parametre 2 - Yığın tutamacı.
- Parametre 3 - Özel durum kaydı. Görüntülemek için .exr kullanın.
- Parametre 4 - Bağlam kaydı. Görüntülemek için .cxr kullanın.
- Test Katmanı: Bellek
- Durdurma Kimliği: SIZE_HEAP_UNEXPECTED_EXCEPTION
- Durdurma kodu: 0x618
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Bellek bloğu geçersiz başlangıç adresiyle boşaltıyor.
olası nedeniBu durdurma, program sayfaların bölgesi ayrıldığında VirtualAlloc veya VirtualAllocEx işlevi tarafından döndürülen temel adres olmayan bir lpAddress parametresiyle VirtualFree (MEM_RELEASE) çağırırsa oluşturulur; Bu durakta hata ayıklamak için:
- kb - VirtualFree'yi çağıran geçerli yığın izlemesini görüntülemek için. Olası suçlu, VirtualFree'yi çağıran DLL'dir.
- Parametre 1 - Boşaltılan bellek bloğunun adresi.
- Parametre 2 - Beklenen doğru bellek bloğu adresi.
- Parametre 3 - Kullanılmıyor.
- Parametre 4 - Kullanılmıyor.
- Test Katmanı: Bellek
- Durdurma Kimliği: INVALID_FREEMEM_START_ADDRESS
- Durdurma kodu: 0x619
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Geçersiz başlangıç adresi olan bellek bloğunun eşlemesi kaldırılsın.
olası nedeniProgram, MapViewOfFile veya MapViewOfFileEx işlevine önceki bir çağrı tarafından döndürülen değerle aynı olmayan bir lpBaseAddress parametresiyle UnmapViewOfFile'ı çağırırsa bu durdurma oluşturulur. Bu durakta hata ayıklamak için:
- kb - UnmapViewOfFile'ı çağıran geçerli yığın izlemesini görüntülemek için. Olası suçlu, UnmapViewOfFile'ı çağıran DLL'dir.
- Parametre 1 - Eşlenmeyen bellek bloğunun adresi.
- Parametre 2 - Beklenen doğru bellek bloğu adresi.
- Parametre 3 - Kullanılmıyor.
- Parametre 4 - Kullanılmıyor.
- Test Katmanı: Bellek
- Durdurma Kimliği: INVALID_UNMAPVIEW_START_ADDRESS
- Durdurma kodu: 0x619
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
threadpool geri çağırma işlevinde beklenmeyen özel durum ortaya çıktı.
olası nedeniBu durdurma, iş parçacığı havuzu iş parçacığındaki bir geri çağırma işlevi özel durum oluşturursa oluşturulur. Bu durakta hata ayıklamak için:
- < parametre1> , özel durum türü için önemli olabilir. Örneğin, özel durum kodu C0000005 Erişim İhlali anlamına gelir.
- .exr <parameter2> - özel durum bilgilerini görüntülemek için.
- Özel durum bağlam bilgilerini görüntülemek için .cxr <parameter3> ve ardından kb .
- Parametre 1 - Özel durum kodu
- Parametre 2 - Özel durum kaydı. Görüntülemek için .exr kullanın
- Parametre 3 - Bağlam kaydı. Görüntülemek için .cxr kullanma
- Parametre 4 - Kullanılmıyor
- Test Katmanı: Bellek
- Durdurma Kimliği: THREADPOOL_UNEXPECTED_EXCEPTION
- Durdurma kodu: 0x61B
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
yürütülemeyen bellekteki kod
olası nedeniUygulama yürütülemeyen veya ücretsiz bir adresten kod çalıştırmaya çalışıyorsa bu durdurma oluşturulur. Bu durakta hata ayıklamak için:
- u <parameter2> - suçlu kodunun bir araya getirmek için
- .exr <parameter3> - özel durum bilgilerini görüntülemek için
- .cxr <parameter4> ve ardından kb - özel durum bağlam bilgilerini ve özel durumun oluşturulduğu zamana ilişkin yığın izlemesini görüntülemek için.
- Parametre 1 - Adrese erişiliyor
- Parametre 2 - Geçersiz erişim gerçekleştiren kod
- Parametre 3 - Özel durum kaydı. Görüntülemek için .exr kullanın.
- Parametre 4 - Bağlam kaydı. Görüntülemek için .cxr kullanın.
- Test Katmanı: Bellek
- Durdurma Kimliği: THREADPOOL_UNEXPECTED_EXCEPTION_CODE
- Durdurma kodu: 0x61C
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Yürütülebilir yığın oluşturuluyor.
olası nedeniUygulama yürütülebilir bir yığın oluşturuyorsa bu durdurma oluşturulur. Bu bir güvenlik riski olabilir.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Kullanılmıyor.
- Parametre 2 - Kullanılmıyor.
- Parametre 3 - Kullanılmıyor.
- Parametre 4 - Kullanılmıyor.
- Test Katmanı: Bellek
- Durdurma Kimliği: EXECUTABLE_HEAP
- Durdurma kodu: 0x1D
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Yürütülebilir bellek ayırma.
olası nedeniUygulama yürütülebilir bellek ayırıyorsa bu durdurma oluşturulur. Bu bir güvenlik riski olabilir.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Çağıran tarafından belirtilen sayfa koruması.
- Parametre 2 - Kullanılmıyor.
- Parametre 3 - Kullanılmıyor.
- Parametre 4 - Kullanılmıyor.
- Test Katmanı: Bellek
- Durdurma Kimliği: EXECUTABLE_MEMORY
- Durdurma kodu: 0x1E
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
TLS Durdurma Ayrıntıları
Boşaltılmayan TLS dizinini ayıran DLL kaldırılma.
olası nedeniTlS dizinini boşaltmadan önce TLS dizini ayıran bir DLL kaldırılıyorsa bu durdurma oluşturulur. Bu durakta hata ayıklamak için:
- du <parameter3> - suçlu DLL'nin adını görüntüleme
- .reload xxx.dll=<parameter4> - suçlu DLL için sembolleri yeniden yükleyin (gerekirse). xxx.dll, yukarıdaki adımda görüntülenen DLL'nin adıdır.
- u <parameter2> - TLS'yi ayıran kodu sökün. Bu, TLS'yi ayıran ancak DLL kaldırılana kadar boşaltmayı unutan işleve işaret etmelidir.
- Parametre 1 - TLS dizini
- Parametre 2 - Bu TLS dizinini ayıran kodun adresi.
- Parametre 3 - DLL ad adresi. Çöp atmak için du kullanın.
- Parametre 4 - DLL temel adresi.
- Test Katmanı: TLS
- Durdurma Kimliği: TLS_LEAK
- Durdurma kodu: 0x350
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Bozuk doğrulayıcı TLS yapısı.
olası nedeniİş parçacığı için TLS yuvalarının durumunu depolamak için kullanılan iç doğrulayıcı yapıları bozulursa bu durdurma oluşturulur. Bunun nedeni büyük olasılıkla süreçteki bazı rastgele bozulmalar olabilir.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - TEB adresi.
- Parametre 2 - Beklenen TEB adresi.
- Parametre 3 - İş Parçacığı Kimliği.
- Parametre 4 - Beklenen iş parçacığı kimliği.
- Test Katmanı: TLS
- Durdurma Kimliği: CORRUPTED_TLS
- Durdurma kodu: 0x351
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Geçersiz bir TLS dizini kullanılıyor.
olası nedeniGeçersiz bir TLS dizini kullanılırsa bu durdurma oluşturulur. Çoğu durumda bunun nedeni TlsFree çağrıldığında kodun bu dizini kullanmaya devam ediyor olmasıdır. Burada threadpool iş parçacığı için bir örnek verilmiştir.
- T1: Dll yükleri ve TlsAlloc
- T1: Kuyruk geri çağırma
- T1: Atlandı bekleme/iptal geri çağırma
- T1: TlsFree
- T2: Geri çağırma çalışır ve TlsSetValue'u çağırır
- T1: Dll kaldırıyor
- Parametre 1 - TLS dizini
- Parametre 2 - Kullanılmaz.
- Parametre 3 - Kullanılmaz.
- Parametre 4 - Kullanılmaz.
- Test Katmanı: TLS
- Durdurma Kimliği: INVALID_TLS_INDEX
- Durdurma kodu: 0x352
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Threadpool Durdurma Ayrıntıları
Bu iş parçacığı havuzu iş parçacığının önceliği değiştirildi.
olası nedenibu durdurma, iş parçacığı havuzuna döndürülürken iş parçacığı önceliği değiştirilirse oluşturulur.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Biçim: - Geri Çağırma (%p) yürüten iş parçacığı havuzu iş parçacığının (%x) iş parçacığı önceliği değiştirildi (%i -> %i)
- Parametre 1 - Callback işlevi.
- Parametre 2 - Bağlam.
- Parametre 3 - Threadpool Nesne ayırma yığını izlemesi, dökümünü almak için dps kullanın.
- Parametre 4 - Geçerli Öncelik.
- Test Katmanı: İş Parçacığı Havuzu
- Durdurma Kimliği: INCONSISTENT_PRIORITY
- Durdurma kodu: 0x700
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Bu iş parçacığı havuzu iş parçacığının benintitesi değiştirildi.
olası nedenibu durdurma, iş parçacığı havuzuna geri döndürülürken iş parçacığı benzitesi değiştirilirse oluşturulur.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Biçim: Geri çağırma (%p) yürüten - threadpool iş parçacığının (%x) değiştirilmiş bir iş parçacığı benzite maskesi var (%p -> %p)
- Parametre 1 - Callback işlevi.
- Parametre 2 - Bağlam.
- Parametre 3 - Threadpool Nesne ayırma yığını izlemesi, dökümünü almak için dps kullanın.
- Parametre 4 - Geçerli benzite.
- Test Katmanı: İş Parçacığı Havuzu
- Durdurma Kimliği: INCONSISTENT_AFFINITY_MASK
- Durdurma kodu: 0x701
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Geçerli iş parçacığının msg havuzunda işlenmemiş msg.
olası nedeniBu iş parçacığı havuzu iş parçacığı döndürülürken herhangi bir ileti işlenmemiş olarak bırakılırsa bu durdurma oluşturulur. Tamamen farklı bir bağlamda işlenecek olması tehlikelidir. Bu iş parçacığına gönderilen iletileri görmek için lütfen !avrf -tp <Param4> kullanın.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Biçim: Geri Çağırma (%p) yürüten - threadpool iş parçacığı (%x) bekleyen pencere iletisine (%x: %x) sahiptir
- Parametre 1 - Callback işlevi.
- Parametre 2 - Bağlam.
- Parametre 3 - Threadpool Nesne ayırma yığını izlemesi, dökümünü almak için dps kullanın.
- Parametre 4 - threadpool iş parçacığı kimliği. Bu iş parçacığına gönderilen iletileri görmek için lütfen !avrf -tp <threadid> kullanın.
- Test Katmanı: İş Parçacığı Havuzu
- Durdurma Kimliği: ORPHANED_THREAD_MESSAGE
- Durdurma kodu: 0x702
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Kapatılmamış pencere geçerli iş parçacığına ait.
olası nedeniBu iş parçacığı havuzuna iş parçacığı döndürülürken herhangi bir pencere canlı tutulursa bu durdurma oluşturulur.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Biçim: - Geri Çağırma (%p) yürüten iş parçacığı havuzu iş parçacığı (%x), iletileri alabilen geçerli hwnd (%x: %s) içeriyor
- Parametre 1 - Callback işlevi.
- Parametre 2 - Bağlam.
- Parametre 3 - Threadpool Nesne ayırma yığını izlemesi, dökümünü almak için dps kullanın.
- Parametre 4 - threadpool iş parçacığı kimliği.
- Test Katmanı: İş Parçacığı Havuzu
- Durdurma Kimliği: ORPHANED_THREAD_WINDOW
- Durdurma kodu: 0x703
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Bir iş parçacığı havuzu iş parçacığında ExitThread() veya TerminateThread() .
olası nedeniExitThread bir iş parçacığı havuzu iş parçacığında çağrılırsa bu durdurma oluşturulur. Sistemi kararsız hale getireceği için yasaktır. Kaynak sızıntısına, donmaya veya AV'ye neden olur.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Callback işlevi.
- Parametre 2 - Bağlam.
- Parametre 3 - Threadpool Nesne ayırma yığını izlemesi, dökümünü almak için dps kullanın.
- Parametre 4 - Kullanılmaz.
- Test Katmanı: İş Parçacığı Havuzu
- Durdurma Kimliği: ILLEGAL_THREAD_TERMINATION
- Durdurma kodu: 0x704
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
İş parçacığı bir iş parçacığı havuzu iş parçacığına döndürülürken iş parçacığı kimliğe bürünme durumundadır.
olası nedeniBu durdurma, geri çağırma işlevinin iş parçacığı belirtecini başka bir kullanıcının kimliğine bürünecek şekilde değiştirmesi ve iş parçacığı havuzuna geri döndürmeden önce sıfırlamayı unutması durumunda oluşturulur.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Callback işlevi.
- Parametre 2 - Bağlam.
- Parametre 3 - Threadpool Nesne ayırma yığını izlemesi, dökümünü almak için dps kullanın.
- Parametre 4 - Kullanılmaz.
- Test Katmanı: İş Parçacığı Havuzu
- Durdurma Kimliği: THREAD_IN_IMPERSONATION
- Durdurma kodu: 0x705
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Kalıcı iş parçacığı gerektiren bir işlev çağrılır.
olası nedeniBazı Microsoft Windows API'lerinin ayrılmış veya kalıcı bir iş parçacığı içinde çağrılması gerekir. İş parçacığı havuzu içinde genellikle iş parçacığı yerel depolaması kullanmaktan ve RegNotifyChangeKeyValue işlevi gibi kalıcı bir iş parçacığı gerektiren zaman uyumsuz çağrıları kuyruğa almaktan kaçınmalısınız. Ancak, bu tür işlevler WT_EXECUTEINPERSISTENTTHREAD seçeneğiyle QueueUserWorkItem kullanılarak kalıcı bir çalışan iş parçacığına kuyruğa alınabilir. Hata ayıklayıcıdaki bir KB, çağıranı gösterir.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Callback işlevi.
- Parametre 2 - Bağlam.
- Parametre 3 - Threadpool Nesne ayırma yığını izlemesi, dökümünü almak için dps kullanın.
- Parametre 4 - Kullanılmaz.
- Test Katmanı: İş Parçacığı Havuzu
- Durdurma Kimliği: PERSISTED_THREAD_NEEDED
- Durdurma kodu: 0x706
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
İş parçacığı kirli işlem durumunda.
olası nedeniGeri arama işlevi geçerli işlem tutamacını kapatmayı veya sıfırlamayı unutursa bu durdurma oluşturulur.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Callback işlevi.
- Parametre 2 - Bağlam.
- Parametre 3 - Threadpool Nesne ayırma yığını izlemesi, dökümünü almak için dps kullanın.
- Parametre 4 - Transaction Handle.
- Test Katmanı: İş Parçacığı Havuzu
- Durdurma Kimliği: DIRTY_TRANSACTION_CONTEXT
- Durdurma kodu: 0x707
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Bu iş parçacığı havuzu durumu dengesiz CoInit ve CoUnInit çağrılarına sahip.
olası nedeniGeri çağırma işlevi CoInit ve CoUnInit dengesiz çağrıları durumunda bu durdurma oluşturulur.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Callback işlevi.
- Parametre 2 - Bağlam.
- Parametre 3 - Threadpool Nesne ayırma yığını izlemesi, dökümünü almak için dps kullanın.
- Parametre 4 - Dengeli Çağrı sayıları.
- Test Katmanı: İş Parçacığı Havuzu
- Durdurma Kimliği: DIRTY_COM_STATE
- Durdurma kodu: 0x708
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Zamanlayıcı nesnesinin parametreleri tutarsız. Süreölçer oluşturulurken WT_EXECUTEONLYONCE belirtildiğinde nokta 0 olmalıdır
olası nedeniSüreölçer WT_EXECUTEONLYONCE bayrağıyla yalnızca bir kez sinyal olarak ayarlandığında zamanlayıcıya sinyal verme süresi sıfır değilse bu durdurma oluşturulur
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Dönem belirtildi.
- Parametre 2 - Bayraklar belirtildi.
- Parametre 3 - Kullanılmaz.
- Parametre 4 - Kullanılmaz.
- Test Katmanı: İş Parçacığı Havuzu
- Durdurma Kimliği: INCONSISTENT_TIMER_PARAMS
- Durdurma kodu: 0x709
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Yükleyici kilidi, geri çağırma içinde iş parçacığı havuzu iş parçacığı tarafından tutuldu.
olası nedeniBu durdurma, yükleyici kilidi geri çağırma içinde tutulursa oluşturulur ve iş parçacığı iş parçacığı havuzuna döndürülürken serbest bırakılmaz.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Callback işlevi.
- Parametre 2 - Bağlam.
- Parametre 3 - Threadpool Nesne ayırma yığını izlemesi, dökümünü almak için dps kullanın.
- Parametre 4 - Kullanılmaz.
- Test Katmanı: İş Parçacığı Havuzu
- Durdurma Kimliği: LOADER_LOCK_HELD
- Durdurma kodu: 0x7A
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Tercih edilen dil, geri çağırma içindeki iş parçacığı havuzu iş parçacığı tarafından ayarlanır.
olası nedeniBu durdurma, tercih edilen dil geri çağırma içinde ayarlanırsa oluşturulur ve iş parçacığı iş parçacığı havuzuna döndürülürken temizlenmez.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Callback işlevi.
- Parametre 2 - Bağlam.
- Parametre 3 - Threadpool Nesne ayırma yığını izlemesi, dökümünü almak için dps kullanın.
- Parametre 4 - Kullanılmaz.
- Test Katmanı: İş Parçacığı Havuzu
- Durdurma Kimliği: PREFERRED_LANGUAGES_SET
- Durdurma kodu: 0x7B
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Arka plan önceliği, geri çağırma içindeki iş parçacığı havuzu iş parçacığı tarafından ayarlanır.
olası nedeniArka plan önceliği geri çağırma içinde ayarlanırsa ve iş parçacığı iş parçacığı havuzuna döndürülürken devre dışı bırakılmadığında bu durdurma oluşturulur.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Callback işlevi.
- Parametre 2 - Bağlam.
- Parametre 3 - Threadpool Nesne ayırma yığını izlemesi, dökümünü almak için dps kullanın.
- Parametre 4 - Kullanılmaz.
- Test Katmanı: İş Parçacığı Havuzu
- Durdurma Kimliği: BACKGROUND_PRIORITY_SET
- Durdurma kodu: 0x7C
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Bir iş parçacığı havuzu iş parçacığında TerminateThread() .
olası nedeniBu durdurma, bir iş parçacığı havuzu iş parçacığında TerminateThread çağrılırsa oluşturulur. Sistemi kararsız hale getireceği için yasaktır. Kaynak sızıntısına, donmaya veya AV'ye neden olur.
Uygulama Doğrulayıcı tarafından görüntülenen Bilgileri- Parametre 1 - Kullanılmaz.
- Parametre 2 - Kullanılmaz.
- Parametre 3 - Kullanılmaz.
- Parametre 4 - Kullanılmaz.
- Test Katmanı: İş Parçacığı Havuzu
- Durdurma Kimliği: ILLEGAL_THREAD_TERMINATION
- Durdurma kodu: 0x7D
- Önem Derecesi: Hatası
- Tek seferlik hata:
- Hata raporu: Kesme
- Dosyaya : evet
- Geri iz oluşturma: evet
Ayrıca Bkz.
Uygulama Doğrulayıcı - Durdurma Kodları ve Tanımları
Uygulama Doğrulayıcı - Genel Bakış
Uygulama Doğrulayıcı - Özellikler
Uygulama Doğrulayıcı - Test Uygulamaları
Uygulama Doğrulayıcı - Uygulama Doğrulayıcı içindeki testler
Uygulama Doğrulayıcı - Hata Ayıklama Uygulama Doğrulayıcı durduruluyor