Udostępnij przez


Weryfikator aplikacji — kody zatrzymania — różne

Poniższe kody zatrzymania znajdują się w tym zestawie testów.

Niebezpieczne wywołanie elementu TerminateThread.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli wątek (identyfikator wątku jest parametr1) jest przerywany jawnie przy użyciu elementu TerminateThread.Ta funkcja jest bardzo niebezpieczna, ponieważ wprowadza uszkodzenie i zakleszczenia danych (zgodnie z msdn).

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Identyfikator wątku dla obiektu wywołującego element Terminatethread.
  • Parametr 2 - Nieużyj.
  • Parametr 3 - Nieużyj.
  • Parametr 4 - Nieużyj.

Dodatkowe informacje
  • Warstwa testowa: Niebezpieczny
  • Identyfikator zatrzymania: TERMINATE_THREAD_CALL
  • Kod zatrzymania: 0x100
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Potencjalne przepełnienie stosu w warunkach małej ilości pamięci.

Prawdopodobna przyczyna

Ten zatrzymanie jest generowane, jeśli początkowy rozmiar zatwierdzenia stosu wątku jest taki, że przepełnienie stosu może zostać podniesione w warunkach małej ilości pamięci, jeśli nie można rozszerzyć stosu.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Nieużyj.
  • Parametr 2 - Nieużyj.
  • Parametr 3 - Nieużyj.
  • Parametr 4 - Nieużyj.

Dodatkowe informacje
  • Warstwa testowa: Niebezpieczny
  • Identyfikator zatrzymania: STACK_OVERFLOW
  • Kod zatrzymania: 0x101
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

ExitProcess wywoływany, gdy wiele wątków nadal działa.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli wątek wywołuje metodę ExitProcess, gdy jest uruchomionych kilka wątków. W takim przypadku wewnętrznie element TerminateThread będzie wywoływany dla każdego wątku i może to spowodować zakleszczenia lub uszkodzenia danych.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Liczba uruchomionych wątków.
  • Parametr 2 - Nieużyj.
  • Parametr 3 - Nieużyj.
  • Parametr 4 - Nieużyj.

Dodatkowe informacje
  • Warstwa testowa: Niebezpieczny
  • Identyfikator zatrzymania: INVALID_EXIT_PROCESS_CALL
  • Kod zatrzymania: 0x102
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Funkcja LoadLibrary jest wywoływana podczas biblioteki DllMain.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli kod wewnątrz biblioteki DllMain wywołuje metodę LoadLibrary lub FreeLibary. Jest to zachowanie zabronione przez MSDN.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Dll Name (użyj zrzutu do zrzutu).
  • Parametr 2 - Adres podstawowy biblioteki DLL.
  • Parametr 3 - Nieużyj.
  • Parametr 4 - Nieużyj.

Dodatkowe informacje
  • Warstwa testowa: Niebezpieczny
  • Identyfikator zatrzymania: INVALID_LOAD_LIBRARY_CALL
  • Kod zatrzymania: 0x103
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Biblioteka FreeLibrary jest wywoływana podczas biblioteki DllMain.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli kod wewnątrz biblioteki DllMain wywołuje metodę LoadLibrary lub FreeLibary. Jest to zachowanie zabronione przez MSDN.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Dll Name (użyj zrzutu do zrzutu).
  • Parametr 2 - Adres podstawowy biblioteki DLL.
  • Parametr 3 - Nieużyj.
  • Parametr 4 - Nieużyj.

Dodatkowe informacje
  • Warstwa testowa: Niebezpieczny
  • Identyfikator zatrzymania: INVALID_FREE_LIBRARY_CALL
  • Kod zatrzymania: 0x104
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Właściwość SetProcessWorkingSetSize jest wywoływana z parametrem MinimumWorkingSetSize = 0xFFFFFFFF.

Prawdopodobna przyczyna

Użyj parametru MinimumWorkingSetSize = (SIZE_T) -1.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Nieużyj.
  • Parametr 2 - Nieużyj.
  • Parametr 3 - Nieużyj.
  • Parametr 4 - Nieużyj.

Dodatkowe informacje
  • Warstwa testowa: Niebezpieczny
  • Identyfikator zatrzymania: INVALID_MINIMUM_PROCESS_WORKING_SIZE
  • Kod zatrzymania: 0x105
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Właściwość SetProcessWorkingSetSize jest wywoływana z parametrem MaximumWorkingSetSize = 0xFFFFFFFF.

Prawdopodobna przyczyna

Użyj parametru MaximumWorkingSetSize = (SIZE_T) -1.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Nieużyj.
  • Parametr 2 - Nieużyj.
  • Parametr 3 - Nieużyj.
  • Parametr 4 - Nieużyj.

Dodatkowe informacje
  • Warstwa testowa: Niebezpieczny
  • Identyfikator zatrzymania: INVALID_MAXIMUM_PROCESS_WORKING_SIZE
  • Kod zatrzymania: 0x106
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Element SetProcessWorkingSetSizeEx jest wywoływany z parametrem MinimumWorkingSetSize = 0xFFFFFFFF.

Prawdopodobna przyczyna

Użyj parametru MinimumWorkingSetSize = (SIZE_T) -1.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Nieużyj.
  • Parametr 2 - Nieużyj.
  • Parametr 3 - Nieużyj.
  • Parametr 4 - Nieużyj.

Dodatkowe informacje
  • Warstwa testowa: Niebezpieczny
  • Identyfikator zatrzymania: INVALID_MINIMUM_PROCESS_WORKING_SIZE_EX
  • Kod zatrzymania: 0x107
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Element SetProcessWorkingSetSizeEx jest wywoływany z parametrem MaximumWorkingSetSize = 0xFFFFFFFF.

Prawdopodobna przyczyna

Użyj parametru MaximumWorkingSetSize = (SIZE_T) -1.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Nieużyj.
  • Parametr 2 - Nieużyj.
  • Parametr 3 - Nieużyj.
  • Parametr 4 - Nieużyj.

Dodatkowe informacje
  • Warstwa testowa: Niebezpieczny
  • Identyfikator zatrzymania: INVALID_MAXIMUM_PROCESS_WORKING_SIZE_EX
  • Kod zatrzymania: 0x108
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Wątek nie może być właścicielem sekcji krytycznej.

Prawdopodobna przyczyna

Ten zatrzymanie jest generowane, jeśli wątek (identyfikator wątku jest parametr1) jest przerywany, zawieszony lub znajduje się w stanie (wątek procesu roboczego zakończył element roboczy), w którym nie może przechowywać sekcji krytycznej. Bieżący wątek jest winowajcą. Aby debugować ten przystanek, użyj następujących poleceń debugera:

  • kb — aby uzyskać bieżący ślad stosu. Jeśli bieżący wątek jest właścicielem sekcji krytycznej, prawdopodobnie wywołuje element ExitThread. Bieżący wątek powinien zawierać sekcję krytyczną przed zakończeniem pracy. Jeśli bieżący wątek wywołuje funkcję TerminateThread lub SuspendThread, nie powinien to robić dla wątku zawierającego sekcję krytyczną.
  • !cs -s <parametru> — zrzut informacji o tej sekcji krytycznej.
  • ln <parametr2> — aby wyświetlić symbole w pobliżu adresu sekcji krytycznej. Powinno to pomóc w zidentyfikowaniu ujawnionej sekcji krytycznej.
  • dps <parametr4> — aby zrzucić ślad stosu dla tej krytycznej sekcji inicjowania.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Identyfikator wątku.
  • Parametr 2 - Krytyczny adres sekcji.
  • Parametr 3 - Krytyczny adres informacji debugowania sekcji.
  • Parametr 4 -Critical section initialization stack trace (Śledzenie  stosu inicjowania sekcji krytycznej).

Dodatkowe informacje
  • Warstwa testowa: Blokad
  • Identyfikator zatrzymania: EXIT_THREAD_OWNS_LOCK
  • Kod zatrzymania: 0x200
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Zwalnianie biblioteki DLL zawierającej aktywną sekcję krytyczną.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli biblioteka DLL ma zmienną globalną zawierającą sekcję krytyczną, a biblioteka DLL zostanie zwolniona, ale sekcja krytyczna nie została usunięta. Aby debugować ten przystanek, użyj następujących poleceń debugera:

  • du <parameter3> — aby zrzucić nazwę winowajcej biblioteki DLL.
  • .reload dllname lub .reload dllname = <parameter4> — aby ponownie załadować symbole dla tej biblioteki DLL.
  • !cs -s <parametr1> — zrzut informacji o tej sekcji krytycznej.
  • ln <parametr1> — aby wyświetlić symbole w pobliżu adresu sekcji krytycznej. Powinno to pomóc w zidentyfikowaniu ujawnionej sekcji krytycznej.
  • dps <parametr2> — aby zrzucić ślad stosu na potrzeby inicjowania tej sekcji krytycznej.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Krytyczny adres sekcji.
  • Parametr 2 -Critical section initialization stack trace (Śledzenie  stosu inicjowania sekcji krytycznej).
  • Parametr 3 -DLL name address (Adres nazwy biblioteki DLL ).
  • Parametr 4 - DLL adres podstawowy.

Dodatkowe informacje
  • Warstwa testowa: Blokad
  • Identyfikator zatrzymania: LOCK_IN_UNLOADED_DLL
  • Kod zatrzymania: 0x201
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Zwalnianie bloku stert zawierającego aktywną sekcję krytyczną.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli alokacja sterty zawiera sekcję krytyczną, alokacja zostanie zwolniona i sekcja krytyczna nie została usunięta. Aby debugować ten przystanek, użyj następujących poleceń debugera:

  • !cs -s <parametr1> — zrzut informacji o tej sekcji krytycznej.
  • ln <parametr1> — aby wyświetlić symbole w pobliżu adresu sekcji krytycznej. Powinno to pomóc w zidentyfikowaniu ujawnionej sekcji krytycznej.
  • dps <parametr2> — aby zrzucić ślad stosu na potrzeby inicjowania tej sekcji krytycznej.
  • < parametr3> i <parametr4> mogą pomóc zrozumieć, gdzie przydzielono ten blok sterty (rozmiar alokacji jest prawdopodobnie znaczący).

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Krytyczny adres sekcji.
  • Parametr 2 -Critical section initialization stack trace (Śledzenie  stosu inicjowania sekcji krytycznej).
  • Parametr 3 - Adres bloku stert.
  • Parametr 4 - Rozmiar bloku sterty.

Dodatkowe informacje
  • Warstwa testowa: Blokad
  • Identyfikator zatrzymania: LOCK_IN_FREED_HEAP
  • Kod zatrzymania: 0x202
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Podwójnie zainicjowana lub uszkodzona sekcja krytyczna.

Prawdopodobna przyczyna

Zazwyczaj ten przystanek jest generowany, jeśli sekcja krytyczna została zainicjowana więcej niż raz. W tym przypadku parametr3 i parametr4 to adresy śledzenia stosu dla dwóch z tych inicjalizacji. Czasami można uzyskać ten przystanek, jeśli sekcja krytyczna lub struktura informacji o debugowaniu została uszkodzona. W tym drugim przypadku możliwe, że parametr3 i parametr4 są nieprawidłowe i bezużyteczne. Aby debugować ten przystanek:

  • !cs -s -d <parametr2> — zrzut informacji o tej sekcji krytycznej.
  • ln <parametr1> — aby wyświetlić symbole w pobliżu adresu sekcji krytycznej. Może to pomóc w zidentyfikowaniu sekcji krytycznej, jeśli jest to zmienna globalna.
  • dps <parameter3> i dps <parameter4> — aby zidentyfikować dwie ścieżki kodu do inicjowania tej sekcji krytycznej.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Krytyczny adres sekcji.
  • Parametr 2 - Adres struktury informacji debugowania znalezionej na aktywnej liście.
  • Parametr 3 - Pierwszy ślad stosu inicjowania.
  • Parametr 4 - Drugi ślad stosu inicjowania.

Dodatkowe informacje
  • Warstwa testowa: Blokad
  • Identyfikator zatrzymania: LOCK_DOUBLE_INITIALIZE
  • Kod zatrzymania: 0x203
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Wolna pamięć zawierająca aktywną sekcję krytyczną.

Prawdopodobna przyczyna

Ten zatrzymanie jest generowane, jeśli pamięć zawierająca sekcję krytyczną została zwolniona, ale sekcja krytyczna nie została usunięta przy użyciu metody DeleteCriticalSection. Aby debugować ten przystanek, użyj następujących poleceń debugera:

  • !cs -s -d <parametr2> — zrzut informacji o tej sekcji krytycznej.
  • dps <parametr3> — aby zidentyfikować ścieżkę kodu do inicjowania tej sekcji krytycznej.

W większości przypadków weryfikator blokady wykrywa natychmiast wyciek krytycznych sekcji zawartych w alokacji sterty, zakresu bibliotek DLL, alokacji pamięci wirtualnej lub mapViewOfFile mapowanego zakresu pamięci i problemy z różnymi zatrzymaniami w tych przypadkach. Tak więc istnieje bardzo niewiele przypadków pozostawionych dla tego weryfikatora zatrzymać. Blokada musi znajdować się w zakresie pamięci zwolnionym przez kod trybu jądra lub zwolnić proces krzyżowy według interfejsów API, takich jak VirtualFreeEx. Zazwyczaj ten przystanek zostanie napotkany, jeśli poprzedni przystanek (np. LOCK_IN_FREED_HEAP lub LOCK_IN_UNLOADED_DLL) był kontynuowany przez naciśnięcie ciągu "g" w konsoli debugera.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Krytyczny adres sekcji.
  • Parametr 2 - Krytyczny adres informacji debugowania sekcji.
  • Parametr 3 -Critical section initialization stack trace (Śledzenie  stosu inicjowania sekcji krytycznej).
  • Parametr 4 - Nieużyj.

Dodatkowe informacje
  • Warstwa testowa: Blokad
  • Identyfikator zatrzymania: LOCK_IN_FREED_MEMORY
  • Kod zatrzymania: 0x204
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Uszkodzona sekcja krytyczna.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli pole DebugInfo sekcji krytycznej wskazuje zwolnionej pamięci. Zazwyczaj na liście aktywnej sekcji krytycznej znajduje się inna prawidłowa struktura DebugInfo. Bez uszkodzenia dwa wskaźniki powinny być identyczne. Aby debugować ten przystanek, użyj następujących poleceń debugera:

  • !cs -s -d <parametr3> — zrzut informacji o tej sekcji krytycznej na podstawie bieżącej zawartości struktury informacji debugowania znalezionej na aktywnej liście (ta struktura jest rzadko uszkodzona, więc zwykle te informacje są wiarygodne).
  • !cs -s <parametr1> — zrzut informacji o tej sekcji krytycznej na podstawie bieżącej zawartości struktury sekcji krytycznej (struktura jest już uszkodzona, więc czasami te informacje nie są wiarygodne).
  • dps <parametr4> — aby zidentyfikować ścieżkę kodu do inicjowania tej sekcji krytycznej. Zrzuć sekcję krytyczną pod adresem parameter1 i poszukaj wzorca uszkodzenia. Z dobrymi symbolami ntdll.dl można użyć następujących poleceń:
  • dt ntdll!_RTL_CRITICAL_SECTION LOCK_ADDRESS
  • dt ntdll!_RTL_CRITICAL_SECTION_DEBUG DEBUG_ADDRESS

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Krytyczny adres sekcji.
  • Parametr 2 - Nieprawidłowy adres informacji o debugowaniu tej sekcji krytycznej.
  • Parametr 3 - Adres informacji o debugowaniu znalezionych na aktywnej liście.
  • Parametr 4 - Inicjalizacja śledzenia stosu.

Dodatkowe informacje
  • Warstwa testowa: Blokad
  • Identyfikator zatrzymania: LOCK_CORRUPTED
  • Kod zatrzymania: 0x205
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Nieprawidłowy wątek właściciela sekcji krytycznej.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli identyfikator wątku właściciela jest nieprawidłowy w bieżącym kontekście. Aby debugować ten przystanek:

  • !cs -s <parametr1> — zrzut informacji o tej sekcji krytycznej.
  • ln <parametr1> — aby wyświetlić symbole w pobliżu adresu sekcji krytycznej. Powinno to pomóc w zidentyfikowaniu sekcji krytycznej.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Krytyczny adres sekcji.
  • Parametr 2 - Właściciel wątku.
  • Parametr 3 - Oczekiwano wątku własności.
  • Parametr 4 - Adres informacyjny debugowania sekcji krytycznej.

Dodatkowe informacje
  • Warstwa testowa: Blokad
  • Identyfikator zatrzymania: LOCK_INVALID_OWNER
  • Kod zatrzymania: 0x206
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Nieprawidłowa liczba rekursji sekcji krytycznej.

Prawdopodobna przyczyna

Ten zatrzymanie jest generowane, jeśli pole liczby rekursji struktury sekcji krytycznej jest nieprawidłowe w bieżącym kontekście. Aby debugować ten przystanek:

  • !cs -s <parametr1> — zrzut informacji o tej sekcji krytycznej.
  • ln <parametr1> — aby wyświetlić symbole w pobliżu adresu sekcji krytycznej. Powinno to pomóc w zidentyfikowaniu sekcji krytycznej.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Krytyczny adres sekcji.
  • Parametr 2 - Liczba rekursji.
  • Parametr 3 - Oczekiwano liczby rekursji.
  • Parametr 4 - Adres informacyjny debugowania sekcji krytycznej.

Dodatkowe informacje
  • Warstwa testowa: Blokad
  • Identyfikator zatrzymania: LOCK_INVALID_RECURSION_COUNT
  • Kod zatrzymania: 0x207
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Usuwanie sekcji krytycznej z nieprawidłową liczbą blokad.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli sekcja krytyczna jest własnością wątku, jeśli zostanie usunięta lub jeśli sekcja krytyczna jest niezainicjowana. Aby debugować ten przystanek:

  • !cs -s <parametr1> — zrzut informacji o tej sekcji krytycznej. Jeśli wątek jest właścicielem 0, sekcja krytyczna nie została zainicjowana.
  • ln <parametr1> — aby wyświetlić symbole w pobliżu adresu sekcji krytycznej. Powinno to pomóc w zidentyfikowaniu sekcji krytycznej.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Krytyczny adres sekcji.
  • Parametr 2 - Zablokuj liczbę.
  • Parametr 3 - Oczekiwana liczba blokad.
  • Parametr 4 - Właściciel wątku.

Dodatkowe informacje
  • Warstwa testowa: Blokad
  • Identyfikator zatrzymania: LOCK_INVALID_LOCK_COUNT
  • Kod zatrzymania: 0x208
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Sekcja krytyczna została zwolniona lub uszkodzona.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli sekcja krytyczna jest zwalniana więcej razy niż bieżący wątek, który go nabył. Aby debugować ten przystanek:

  • !cs -s <parametr1> — zrzut informacji o tej sekcji krytycznej.
  • !cs -s -d <parametr4> — zrzut informacji o tej sekcji krytycznej.
  • ln <parametr1> — aby wyświetlić symbole w pobliżu adresu sekcji krytycznej. Powinno to pomóc w zidentyfikowaniu sekcji krytycznej.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Krytyczny adres sekcji.
  • Parametr 2 - Zablokuj liczbę.
  • Parametr 3 - Oczekiwana liczba blokad.
  • Parametr 4 - Adres informacyjny debugowania sekcji krytycznej.

Dodatkowe informacje
  • Warstwa testowa: Blokad
  • Identyfikator zatrzymania: LOCK_OVER_RELEASED
  • Kod zatrzymania: 0x209
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Sekcja krytyczna nie została zainicjowana.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli jest używana sekcja krytyczna bez inicjowania lub po jego usunięciu. Aby debugować ten przystanek:

  • ln <parametr1> — aby wyświetlić symbole w pobliżu adresu sekcji krytycznej. Powinno to pomóc w zidentyfikowaniu sekcji krytycznej.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Krytyczny adres sekcji.
  • Parametr 2 - Adres informacyjny debugowania sekcji krytycznej.
  • Parametr 3 - Nieużyj.
  • Parametr 4 - Nieużyj.

Dodatkowe informacje
  • Warstwa testowa: Blokad
  • Identyfikator zatrzymania: LOCK_NOT_INITIALIZED
  • Kod zatrzymania: 0x210
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Sekcja Krytyczna została już zainicjowana.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli sekcja krytyczna zostanie ponownie zainicjowana przez bieżący wątek. Aby debugować ten przystanek:

  • !cs -s parametr1> lub !cs -s -d < parametr2 — zrzut informacji o tej sekcji krytycznej.
  • ln <parametr1> — aby wyświetlić symbole w pobliżu adresu sekcji krytycznej. Może to pomóc w zidentyfikowaniu sekcji krytycznej, jeśli jest to zmienna globalna.
  • dps <parametr3> — aby zidentyfikować ścieżkę kodu dla pierwszej inicjalizacji tej sekcji krytycznej.
  • kb — aby wyświetlić bieżący ślad stosu, czyli ponowne inicjowanie tej sekcji krytycznej.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Krytyczny adres sekcji.
  • Parametr 2 - Adres informacyjny debugowania sekcji krytycznej.
  • Parametr 3 - Pierwszy ślad stosu inicjowania. Użyj programu dps, aby zrzucić go, jeśli nie ma wartości NULL
  • Parametr 4 - Nieużyj.

Dodatkowe informacje
  • Warstwa testowa: Blokad
  • Identyfikator zatrzymania: LOCK_ALREADY_INITIALIZED
  • Kod zatrzymania: 0x211
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Zwalnianie pamięci wirtualnej zawierającej aktywną sekcję krytyczną.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli bieżący wątek wywołuje funkcję VirtualFree w bloku pamięci zawierającym aktywną sekcję krytyczną. Aplikacja powinna wywołać metodę DeleteCriticalSection w tej sekcji krytycznej, zanim zwolni tę pamięć.

  • kb — aby wyświetlić bieżący ślad stosu, który wywołuje funkcję VirtualFree. Prawdopodobnym winowajcą jest biblioteka DLL, która wywołuje VirtualFree.
  • !cs -s <parametr1> — zrzut informacji o tej sekcji krytycznej.
  • dps <parametr2> — aby zidentyfikować ścieżkę kodu do inicjowania tej sekcji krytycznej.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Krytyczny adres sekcji.
  • Parametr 2 -Critical section initialization stack trace (Śledzenie  stosu inicjowania sekcji krytycznej).
  • Parametr 3 - Adres bloku pamięci.
  • Parametr 4 - Rozmiar bloku pamięci.

Dodatkowe informacje
  • Warstwa testowa: Blokad
  • Identyfikator zatrzymania: LOCK_IN_FREED_VMEM
  • Kod zatrzymania: 0x212
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Anulowanie mapowania obszaru pamięci zawierającego aktywną sekcję krytyczną.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli bieżący wątek wywołuje polecenie UnmapViewOfFile w bloku pamięci zawierającym aktywną sekcję krytyczną. Aplikacja powinna wywołać metodę DeleteCriticalSection w tej sekcji krytycznej przed usunięciem mapowania tej pamięci.

  • kb — aby wyświetlić bieżący ślad stosu, który wywołuje polecenie UnmapViewOfFile . Prawdopodobnym winowajcą jest biblioteka DLL, która wywołuje unmapViewOfFile.
  • !cs -s <parametr1> — zrzut informacji o tej sekcji krytycznej.
  • dps <parametr2> — aby zidentyfikować ścieżkę kodu do inicjowania tej sekcji krytycznej.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Krytyczny adres sekcji.
  • Parametr 2 -Critical section initialization stack trace (Śledzenie  stosu inicjowania sekcji krytycznej).
  • Parametr 3 - Adres bloku pamięci.
  • Parametr 4 - Rozmiar bloku pamięci.

Dodatkowe informacje
  • Warstwa testowa: Blokad
  • Identyfikator zatrzymania: LOCK_IN_UNMAPPED_MEM
  • Kod zatrzymania: 0x213
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Bieżący wątek nie jest właścicielem żadnych sekcji krytycznych.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli bieżący wątek wywołuje funkcję LeaveCriticalSection, ale zgodnie z wewnętrznym księgowaniem weryfikatora nie jest właścicielem żadnej sekcji krytycznej. Jeśli parametr2 ma wartość zero, prawdopodobnie jest to usterka w bieżącym wątku. Spróbuje opuścić sekcję krytyczną, która nie wprowadzono, lub może wywołać funkcję LeaveCriticalSection więcej razy niż w sekcji EnterCriticalSection dla tej samej sekcji krytycznej. Jeśli parametr2 nie jest zerowy (jest to ujemna liczba całkowita) wewnętrzne struktury danych weryfikatora są prawdopodobnie uszkodzone.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Krytyczny adres sekcji.
  • Parametr 2 - Liczba sekcji krytycznych należących do bieżącego wątku.
  • Parametr 3 - Nieużytne
  • Parametr 4 - Nieużytne

Dodatkowe informacje
  • Warstwa testowa: Blokad
  • Identyfikator zatrzymania: THREAD_NOT_LOCK_OWNER
  • Kod zatrzymania: 0x214
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Używanie sekcji krytycznej, która jest prywatna dla innej biblioteki DLL.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli bieżący wątek próbuje użyć prywatnej blokady, która znajduje się wewnątrz innej biblioteki DLL. Na przykład a.dll próbuje wprowadzić sekcję krytyczną zdefiniowaną w ntdll.dll. Nie można używać prywatnych blokad w bibliotekach DLL.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Krytyczny adres sekcji.
  • Parametr 2 - Nieużyj.
  • Parametr 3 - Nieużytne
  • Parametr 4 - Nieużytne

Dodatkowe informacje
  • Warstwa testowa: Blokad
  • Identyfikator zatrzymania: LOCK_PRIVATE
  • Kod zatrzymania: 0x215
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Blokada SRW nie jest inicjowana.

Prawdopodobna przyczyna

Ten zatrzymanie jest generowane, jeśli wątek próbuje użyć blokady SRW (Param1), która nie jest zainicjowana. Aby debugować, użyj ciągu "kb", aby uzyskać bieżący ślad stosu. W tym miejscu jest używana blokada SRW. Blokada SRW powinna zostać zainicjowana przy użyciu funkcji InitializeSRWLock, zanim będzie można jej użyć.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - SRW Lock
  • Parametr 2 - Nieużytne
  • Parametr 3 - Nieużytne
  • Parametr 4 - Nieużytne

Dodatkowe informacje
  • Warstwa testowa: SRWLock
  • Identyfikator zatrzymania: NOT_INITIALIZED
  • Kod zatrzymania: 0x250
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Blokada SRW została już zainicjowana.

Prawdopodobna przyczyna

Ten zatrzymanie jest generowane, jeśli blokada SRW (Param1) jest ponownie inicjowana. Jeśli blokada SRW jest aktywnie używana przez inne wątki, ponowne inicjowanie blokady spowoduje nieprzewidywalne zachowanie aplikacji, w tym zawieszanie się i awarie. Ślad stosu inicjowania może pokazać uzyskanie, jeśli blokada SRW została statycznie zainicjowana.

  • kb — aby uzyskać bieżący ślad stosu. W tym miejscu następuje ponowne zainicjowanie blokady SRW.
  • dps <parametr3> — aby uzyskać ślad stosu inicjowania funkcji SRW. Ten ślad stosu może pokazać uzyskanie, jeśli blokada została zainicjowana statycznie.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - SRW Lock
  • Parametr 2 - ThreadId wątku, który zainicjował blokadę SRW.
  • Parametr 3 - Adres śledzenia stosu inicjowania. Użyj adresu> dps<, aby zobaczyć, gdzie zainicjowano blokadę SRW.
  • Parametr 4 - Nieużytne

Dodatkowe informacje
  • Warstwa testowa: SRWLock
  • Identyfikator zatrzymania: ALREADY_INITIALIZED
  • Kod zatrzymania: 0x251
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Niezgodna Acquire-Release na blokadzie SRW.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli blokada SRW (Param1) jest zwalniana z nieprawidłowym interfejsem API wydania. Jeśli blokada SRW została uzyskana na potrzeby dostępu współdzielonego i jest zwalniana przy użyciu interfejsu API wydania wyłącznego lub blokada SRW została uzyskana w celu uzyskania wyłącznego dostępu i jest zwalniana przy użyciu udostępnionego interfejsu API wydania. Może to spowodować nieprzewidywalne zachowanie aplikacji, w tym zawieszanie się i awarie.

  • kb — aby uzyskać bieżący ślad stosu. W tym miejscu jest zwalniana blokada SRW przy użyciu nieprawidłowego interfejsu API.
  • dps <parametr3> — aby uzyskać ślad stosu uzyskiwania blokady SRW.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - SRW Lock
  • Parametr 2 - ThreadId wątku, który nabył blokadę SRW.
  • Parametr 3 - Adres śledzenia stosu uzyskiwania. Użyj adresu> dps<, aby zobaczyć, gdzie została uzyskana blokada SRW.
  • Parametr 4 - Nieużytne

Dodatkowe informacje
  • Warstwa testowa: SRWLock
  • Identyfikator zatrzymania: MISMATCHED_ACQUIRE_RELEASE
  • Kod zatrzymania: 0x252
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Blokada SRW jest uzyskiwana rekursywnie przez ten sam wątek.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli blokada SRW (Param1) jest uzyskiwana rekursywnie przez ten sam wątek. Spowoduje to zakleszczenie, a wątek będzie blokowany na czas nieokreślony. Cyklicznego nabycia blokady SRW w trybie wyłączności spowoduje zakleszczenie. Rekursywne uzyskiwanie blokady SRW w trybie udostępnionym spowoduje zakleszczenie, gdy wątek czeka na wyłączny dostęp. Rozważmy poniższy przykład: — Wątek A uzyskuje blokadę SRW w trybie udostępnionym — wątek B próbuje acruire blokady SRW w trybie wyłącznym i czeka — wątek A próbuje uzyskać blokadę SRW w trybie współdzielonego rekursywnie. To powiedzie się tak długo, jak nie ma wyłącznego kelnera (w tym przypadku B). Ponieważ blokady SRW nie mają głodu zapisywania, wątek A czeka za wątkiem B. Teraz, Thread B czeka na Thread A, który jest inturn czeka na Thread B powoduje cykliczne oczekiwanie, a tym samym impas.

  • kb — aby uzyskać bieżący ślad stosu. W tym miejscu jest uzyskiwana rekursywnie blokada SRW.
  • dps <parametr2> — aby pobrać ślad stosu dla pierwszego pozyskiwania.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - SRW Lock
  • Parametr 2 - Adres pierwszego śledzenia stosu uzyskiwania. Użyj adresu> dps<, aby zobaczyć, gdzie została uzyskana blokada SRW.
  • Parametr 3 - Nieużytne
  • Parametr 4 - Nieużytne

Dodatkowe informacje
  • Warstwa testowa: SRWLock
  • Identyfikator zatrzymania: RECURSIVE_ACQUIRE
  • Kod zatrzymania: 0x253
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Wątek, który kończy działanie lub jest przerywany, jest właścicielem blokady SRW.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli wątek (Param2), który jest właścicielem blokady SRW (Param1) jest zamykany lub jest przerywany. Spowoduje to zablokowanie oddzielonej blokady SRW, a wątki próbujące uzyskać tę blokadę będą blokować na czas nieokreślony.

  • kb — aby uzyskać bieżący ślad stosu. Jest to miejsce, w którym wątek kończy działanie lub jest przerywany.
  • dps <parametr3> — aby uzyskać ślad stosu uzyskiwania blokady SRW.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - SRW Lock
  • Parametr 2 - ThreadId wątku, który kończy lub jest przerywany.
  • Parametr 3 - Adres śledzenia stosu uzyskiwania. Użyj adresu> dps<, aby zobaczyć, gdzie została uzyskana blokada SRW.
  • Parametr 4 - Nieużytne

Dodatkowe informacje
  • Warstwa testowa: SRWLock
  • Identyfikator zatrzymania: EXIT_THREAD_OWNS_LOCK
  • Kod zatrzymania: 0x254
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Zwalniana blokada SRW nie została pobrana przez ten wątek.

Prawdopodobna przyczyna

Ten zatrzymanie jest generowane, jeśli blokada SRW (Param1) jest zwalniana przez wątek (Param2), który nie nabył blokady. Reprezentuje to złą praktykę programową, która jest trudna do uzyskania właściwego działania i może prowadzić do nieprzewidywalnego zachowania aplikacji.

  • kb — aby uzyskać bieżący ślad stosu. W tym miejscu wątek zwalnia blokadę SRW, której nie nabył.
  • dps <parametr4> — aby uzyskać ślad stosu uzyskiwania blokady SRW.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - SRW Lock
  • Parametr 2 - Current ThreadId.
  • Parametr 3 - ThreadId wątku, który nabył blokadę SRW.
  • Parametr 4 - Adres śledzenia stosu uzyskiwania. Użyj adresu> dps<, aby zobaczyć, gdzie została uzyskana blokada SRW.

Dodatkowe informacje
  • Warstwa testowa: SRWLock
  • Identyfikator zatrzymania: INVALID_OWNER
  • Kod zatrzymania: 0x255
  • Dotkliwość: Ostrzeżenie
  • Jednorazowy błąd: 
  • Raport o błędach: Żaden
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Zwolniona pamięć zawiera aktywną blokadę SRW.

Prawdopodobna przyczyna

Ten zatrzymanie jest generowane, jeśli zwalniany adres pamięci (Param1) zawiera aktywną blokadę SRW, która jest nadal używana. Może to spowodować nieprzewidywalne zachowanie aplikacji, w tym awarie i zawieszenie.

  • kb — aby uzyskać bieżący ślad stosu. W tym miejscu zwalniana jest pamięć zawierająca aktywną blokadę SRW.
  • dps <parametr4> — aby uzyskać ślad stosu uzyskiwania blokady SRW.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - SRW Lock
  • Parametr 2 - Adres zwalnianej pamięci.
  • Parametr 3 - ThreadId wątku, który nabył blokadę SRW.
  • Parametr 4 - Adres śledzenia stosu uzyskiwania. Użyj adresu> dps<, aby zobaczyć, gdzie została uzyskana blokada SRW.

Dodatkowe informacje
  • Warstwa testowa: SRWLock
  • Identyfikator zatrzymania: IN_FREED_MEMORY
  • Kod zatrzymania: 0x256
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Zwalniana biblioteka DLL zawiera aktywną blokadę SRW.

Prawdopodobna przyczyna

Ten zatrzymanie jest generowane, jeśli biblioteka DLL jest zwalniana (Param2) zawiera aktywną blokadę SRW (Param1), która jest nadal używana. Może to spowodować nieprzewidywalne zachowanie aplikacji, w tym awarie i zawieszenie.

  • kb — aby uzyskać bieżący ślad stosu. W tym miejscu jest zwalniana biblioteka DLL, która zawiera aktywną blokadę SRW.
  • du <parameter2> — aby znaleźć nazwę biblioteki DLL, która jest zwalniana.
  • dps <parametr4> — aby uzyskać ślad stosu uzyskiwania blokady SRW.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - SRW Lock
  • Parametr 2 - Adres nazwy zwalnianej biblioteki DLL. Użyj du <address> , aby wyświetlić nazwę.
  • Parametr 3 - ThreadId wątku, który nabył blokadę SRW.
  • Parametr 4 - Adres śledzenia stosu uzyskiwania. Użyj adresu> dps<, aby zobaczyć, gdzie została uzyskana blokada SRW.

Dodatkowe informacje
  • Warstwa testowa: SRWLock
  • Identyfikator zatrzymania: IN_UNLOADED_DLL
  • Kod zatrzymania: 0x257
  • Dotkliwość: Ostrzeżenie
  • Jednorazowy błąd: 
  • Raport o błędach: Żaden
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Blokada SRW jest uzyskiwana na ścieżce zamknięcia, co może spowodować zawieszenie.

Prawdopodobna przyczyna

Ten zatrzymanie jest generowane, jeśli na ścieżce zamknięcia jest uzyskiwana blokada SRW (Param1). Blokady SRW nie są zamykane. Próba uzyskania blokady SRW, która została oddzielona (z powodu zamknięcia procesu lub innego powodu), spowoduje zawieszenie. Wywołanie metody ConditionVariableSRW na ścieżce zamknięcia może również spowodować zatrzymanie tego weryfikatora, ponieważ blokada zostanie zwolniona i uzyskana podczas tego wywołania. Aby debugować ten przystanek:

  • kb — aby uzyskać bieżący ślad stosu. Jest to miejsce, w którym blokada SRW jest uzyskiwana na ścieżce zamykania.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - SRW Lock
  • Parametr 2 - Nieużytne
  • Parametr 3 - Nieużytne
  • Parametr 4 - Nieużytne

Dodatkowe informacje
  • Warstwa testowa: SRWLock
  • Identyfikator zatrzymania: ACQUIRE_ON_SHUTDOWN_PATH
  • Kod zatrzymania: 0x258
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Nieprawidłowy wyjątek obsługi dla bieżącego śledzenia stosu.

Prawdopodobna przyczyna

Ten zatrzymanie jest generowane, jeśli funkcja w górnej części stosu przeszła nieprawidłową dojścia do procedur systemowych. Zwykle proste polecenie kb ujawni, jaka jest wartość przekazanego dojścia (musi być jednym z parametrów — zwykle pierwszym). Jeśli wartość ma wartość null, jest to wyraźnie błędne. Jeśli wartość wygląda poprawnie, musisz użyć rozszerzenia debugera !htrace, aby uzyskać historię operacji odnoszących się do tej wartości dojścia. W większości przypadków musi być używana wartość dojścia po zamknięciu.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Kod wyjątku.
  • Parametr 2 - Rekord wyjątku. Użyj polecenia .exr, aby go wyświetlić.
  • Parametr 3 - Rekord kontekstu. Użyj narzędzia .cxr, aby go wyświetlić.
  • Parametr 4 - Nieużyj.

Dodatkowe informacje
  • Warstwa testowa: Obsługuje
  • Identyfikator zatrzymania: INVALID_HANDLE
  • Kod zatrzymania: 0x300
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Nieprawidłowy indeks TLS używany do śledzenia bieżącego stosu.

Prawdopodobna przyczyna

Ten zatrzymanie jest generowane, jeśli funkcja w górnej części stosu przeszła nieprawidłowy indeks TLS do procedur systemowych TLS. Zwykle proste polecenie kb ujawni, co jest złe. Typowy błąd polega na założeniu określonej wartości dla indeksu TLS zamiast wywoływania protokołu TlsAlloc. Może się tak zdarzyć, myśląc, że zawsze otrzymujesz wartość N, dlatego nie ma potrzeby wywoływania metody TlsAlloc lub częściej z powodu niezainicjowanej zmiennej.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Nieprawidłowy indeks TLS.
  • Parametr 2 - Oczekiwano niższej części indeksu.
  • Parametr 3 - Nieużyj.
  • Parametr 4 - Nieużyj.

Dodatkowe informacje
  • Warstwa testowa: Obsługuje
  • Identyfikator zatrzymania: INVALID_TLS_VALUE
  • Kod zatrzymania: 0x301
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Nieprawidłowe parametry wywołania WaitForMultipleObjects.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli funkcja w górnej części stosu o nazwie WaitForMultipleObjects z wartością NULL jako adres tablicy dojść do oczekiwania lub z zerem jako liczbę dojść. Proste polecenie kb spowoduje niepoprawne wywołanie funkcji wywołującej ten interfejs API.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Adres obiektu obsługuje wektor.
  • Parametr 2 - Liczba dojść.
  • Parametr 3 - Nieużyj.
  • Parametr 4 - Nieużyj.

Dodatkowe informacje
  • Warstwa testowa: Obsługuje
  • Identyfikator zatrzymania: INCORRECT_WAIT_CALL
  • Kod zatrzymania: 0x302
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Dojście o wartości NULL przekazane jako parametr. Należy użyć prawidłowego uchwytu.

Prawdopodobna przyczyna

Ten zatrzymanie jest generowane, jeśli funkcja w górnej części stosu przekazała dojście NULL do procedur systemowych.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Nieużyj.
  • Parametr 2 - Nieużyj.
  • Parametr 3 - Nieużyj.
  • Parametr 4 - Nieużyj.

Dodatkowe informacje
  • Warstwa testowa: Obsługuje
  • Identyfikator zatrzymania: NULL_HANDLE
  • Kod zatrzymania: 0x303
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Oczekiwanie na dojście wątku w dllMain.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli bieżący wątek jest obecnie uruchomiony kod wewnątrz funkcji DllMain jednej z bibliotek DLL załadowanych w bieżącym procesie i wywołuje waitForSingleObject lub WaitForMultipleObjects czekać na dojściu wątku w tym samym procesie. Najprawdopodobniej doprowadzi to do zakleszczenia, ponieważ uchwyt wątku nie zostanie zasygnalizowany, chyba że drugi wątek kończy się. Gdy drugi wątek wywoła metodę ExitThread, spróbuje uzyskać blokadę modułu ładującego DLL, a następnie wywołać bibliotekę DllMain (DLL_THREAD_DETACH) dla wszystkich bibliotek DLL w bieżącym procesie. Ale blokada modułu ładującego jest własnością pierwszego wątku (ten, który czeka na uchwyt wątku), więc dwa wątki zakleszczą się.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Uchwyt wątku.
  • Parametr 2 - Nieużyj.
  • Parametr 3 - Nieużyj.
  • Parametr 4 - Nieużyj.

Dodatkowe informacje
  • Warstwa testowa: Obsługuje
  • Identyfikator zatrzymania: WAIT_IN_DLLMAIN
  • Kod zatrzymania: 0x304
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Niepoprawny typ obiektu dla uchwytu.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli bieżący wątek wywołuje interfejs API z uchwytem do obiektu z nieprawidłowym typem obiektu. Na przykład wywołanie metody SetEvent za pomocą uchwytu semafora jako parametru spowoduje wygenerowanie tego zatrzymania. Aby debugować ten przystanek:

  • kb — aby wyświetlić bieżący ślad stosu. Winowajcą jest prawdopodobnie biblioteka DLL, która wywołuje verifier.dll;
  • du <parameter2> — aby wyświetlić rzeczywisty typ uchwytu. Wartość uchwytu to parametr1. W powyższym przykładzie zostanie wyświetlony komunikat: "Semaphore".
  • du <parameter3> — aby wyświetlić typ obiektu oczekiwany przez interfejs API. W powyższym przykładzie nazwa będzie następująca: "Zdarzenie".
  • !htrace <parametr1> może być przydatny, ponieważ wyświetli ślad stosu dla ostatnich operacji otwierania/zamykania na tym dojściu.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Dojmij wartość.
  • Parametr 2 - Nazwa typu obiektu. Użyj narzędzia du, aby go wyświetlić
  • Parametr 3 - Oczekiwana nazwa typu obiektu. Użyj narzędzia du, aby go wyświetlić
  • Parametr 4 - Nieużyj.

Dodatkowe informacje
  • Warstwa testowa: Obsługuje
  • Identyfikator zatrzymania: INCORRECT_OBJECT_TYPE
  • Kod zatrzymania: 0x305
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Zwalnianie biblioteki DLL, która przydzielała indeks TLS, który nie został zwolniony.

Prawdopodobna przyczyna

Ten zatrzymanie jest generowane, jeśli biblioteka DLL, która przydzieliła indeks TLS, jest zwalniana przed zwolnieniem tego indeksu TLS. Aby debugować ten przystanek:

  • du <parameter3> — wyświetlanie nazwy winowajcej biblioteki DLL;
  • .reload xxx.dll=<parameter4> — ponowne ładowanie symboli dla winy DLL (w razie potrzeby). xxx.dll jest nazwą biblioteki DLL wyświetlanej w powyższym kroku;
  • u <parametr2> — dezasembluje kod, który przydzielił protokół TLS. Powinno to wskazywać funkcję, która przydzieliła protokół TLS, ale nie zapomniała zwolnić go przed zwolnieniem biblioteki DLL.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Indeks TLS
  • Parametr 2 - Adres kodu, który przydzielił ten indeks TLS.
  • Parametr 3 -DLL name address (Adres nazwy biblioteki DLL ). Użyj zrzutu, aby go zrzucić.
  • Parametr 4 - DLL adres podstawowy.

Dodatkowe informacje
  • Warstwa testowa: TLS
  • Identyfikator zatrzymania: TLS_LEAK
  • Kod zatrzymania: 0x350
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Uszkodzona struktura protokołu TLS weryfikatora.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli wewnętrzne struktury weryfikatora używane do przechowywania stanu miejsc protokołu TLS dla wątku są uszkodzone. Bardzo prawdopodobne jest to z powodu niektórych losowych uszkodzeń w procesie.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - ADRES TEB.
  • Parametr 2 - Oczekiwany adres TEB.
  • Parametr 3 - Identyfikator wątku.
  • Parametr 4 - Oczekiwany identyfikator wątku.

Dodatkowe informacje
  • Warstwa testowa: TLS
  • Identyfikator zatrzymania: CORRUPTED_TLS
  • Kod zatrzymania: 0x351
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Używanie nieprawidłowego indeksu TLS.

Prawdopodobna przyczyna

Ten zatrzymanie jest generowane, jeśli jest używany nieprawidłowy indeks TLS. W większości przypadków jest to spowodowane tym, że kod nadal używa tego indeksu, gdy jest wywoływany protokół TlsFree. Oto przykład wątku wątku wątku. T1: Ładuje bibliotekę DLL i TlsAlloc T1: Wywołanie zwrotne kolejki T1: Pominięto oczekujące/anulowane wywołanie zwrotne T1: TlsFree T2: Przebiegi wywołania zwrotnego i wywołuje funkcję TlsSetValue T1: Zwalnianie biblioteki DLL

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Indeks TLS
  • Parametr 2 - Nieużytne.
  • Parametr 3 - Nieużytne.
  • Parametr 4 - Nieużytne.

Dodatkowe informacje
  • Warstwa testowa: TLS
  • Identyfikator zatrzymania: INVALID_TLS_INDEX
  • Kod zatrzymania: 0x352
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Zwalnianie bloku pamięci wirtualnej o nieprawidłowym rozmiarze lub adresie początkowym.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli weryfikator aplikacji wykryje virtualfree lub dll zwolnić z nieprawidłowym adresem początkowym lub rozmiarem alokacji pamięci. W przypadku zwolnienia biblioteki DLL prawdopodobnie oznacza to uszkodzenie pamięci na załadowanej liście bibliotek DLL. Aby debugować ten przystanek, przyjrzyj się bieżącemu śladowi stosu oraz adresowi pamięci i rozmiarowi, który ma zostać zwolniony, i spróbuj ustalić, dlaczego są one nieprawidłowe.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Adres podstawowy alokacji.
  • Parametr 2 - Rozmiar regionu pamięci.
  • Parametr 3 - Nieużyj.
  • Parametr 4 - Nieużyj.

Dodatkowe informacje
  • Warstwa testowa: Pamięć
  • Identyfikator zatrzymania: INVALID_FREEMEM
  • Kod zatrzymania: 0x600
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Nieprawidłowe wirtualne wywołanie aloku.

Prawdopodobna przyczyna

Ten zatrzymanie jest generowane, jeśli weryfikator aplikacji wykryje wywołanie VirtualAlloc z nieprawidłowym adresem początkowym lub rozmiarem alokacji pamięci. Aby debugować ten przystanek, przyjrzyj się bieżącemu śladowi stosu (kb) oraz adresowi pamięci i rozmiarowi, który ma zostać przydzielony, i spróbuj ustalić, dlaczego są one nieprawidłowe.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Wskaźnik do adresu podstawowego alokacji.
  • Parametr 2 - Wskaźnik do rozmiaru regionu pamięci.
  • Parametr 3 - Nieużytne
  • Parametr 4 - Nieużytne

Dodatkowe informacje
  • Warstwa testowa: Pamięć
  • Identyfikator zatrzymania: INVALID_ALLOCMEM
  • Kod zatrzymania: 0x601
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Nieprawidłowe wywołanie widoku mapy.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli weryfikator aplikacji wykryje wywołanie MapViewOfFile z nieprawidłowym adresem podstawowym lub rozmiarem mapowania. Aby debugować ten przystanek, przyjrzyj się bieżącemu śladowi stosu (kb) oraz adresowi pamięci i rozmiarowi, który ma zostać zamapowany, i spróbuj ustalić, dlaczego są one nieprawidłowe.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Wskaźnik do mapowania adresu podstawowego.
  • Parametr 2 - Wskaźnik do wyświetlania rozmiaru.
  • Parametr 3 - Nieużyj.
  • Parametr 4 - Nieużyj.

Dodatkowe informacje
  • Warstwa testowa: Pamięć
  • Identyfikator zatrzymania: INVALID_MAPVIEW
  • Kod zatrzymania: 0x602
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Sondowanie nieprawidłowego adresu.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli weryfikator aplikacji wykryje wywołanie IsBadXXXPtr z nieprawidłowym adresem (np. adresem trybu jądra, a nie normalnym adresem trybu użytkownika) dla buforu pamięci do sondowania. Aby debugować ten przystanek, przyjrzyj się bieżącemu śladowi stosu (kb) i spróbuj ustalić, dlaczego obiekt wywołujący funkcji IsBadXXXPtr zakończył się nieprawidłowym adresem. Wiele razy adres jest zwykłym fałszywym, np. niezainicjowanym wskaźnikiem. Biblioteka MSDN zawiera listę kilku powodów, dla których aplikacje nie powinny używać interfejsów API IsBadXXXPtr: W środowisku wielozadaniowym z wyprzedzeniem istnieje możliwość zmiany dostępu procesu do testowanej pamięci. Wyłuszczenie potencjalnie nieprawidłowych wskaźników może wyłączyć rozszerzanie stosu w innych wątkach. Wątek wyczerpujący stos, gdy rozszerzenie stosu zostało wyłączone, powoduje natychmiastowe zakończenie procesu nadrzędnego bez wyskakującego okna błędów ani informacji diagnostycznych. Oczekuje się, że wątki w procesie będą współpracować w taki sposób, aby nie zwolnić pamięci, której potrzebuje druga. Użycie tej funkcji nie neguje konieczności wykonania tej czynności. Jeśli nie zostanie to zrobione, aplikacja może zakończyć się niepowodzeniem w nieprzewidywalny sposób. Ze względu na wszystkie te powody zalecamy, aby nigdy nie używać tych interfejsów API.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Adres początkowy.
  • Parametr 2 - Rozmiar bloku pamięci.
  • Parametr 3 - Nieprawidłowy adres.
  • Parametr 4 - Nieużyj.

Dodatkowe informacje
  • Warstwa testowa: Pamięć
  • Identyfikator zatrzymania: PROBE_INVALID_ADDRESS
  • Kod zatrzymania: 0x603
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Sondowanie wolnej pamięci.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli weryfikator aplikacji wykryje wywołanie IsBadXXXPtr dla alokacji pamięci, która jest bezpłatna. Jest to bardzo złe, ponieważ istnieje możliwość, że w niektórych innych przypadkach ta pamięć została już ponownie użyta dla innej alokacji. Ponieważ bieżąca ścieżka kodu (kb) nie jest właścicielem tej pamięci, może to spowodować uszkodzenie pamięci innej osoby z katastrofalnymi skutkami. Aby debugować ten przystanek, przyjrzyj się bieżącemu śladowi stosu (kb) i spróbuj ustalić, dlaczego obiekt wywołujący funkcji IsBadXXXPtr zakończył sondowanie wolnej pamięci. Adres może być zwykłymi fałszywymi (np. niezainicjowanym wskaźnikiem) lub być może już zwolnioną pamięcią. Jeśli pamięć została już zwolniona przez jeden z interfejsów API VirtualFree lub UnmapViewOfFile, '!avrf -vs -a parametr3' wyszuka dziennik śladów stosu ścieżek kodu, które przydzielone/zwolniły ten adres i wyświetli te ślady stosu, jeśli są dostępne. Może to spowodować wyświetlenie śladu stosu, który zwolnił tę pamięć. Częściej pamięć jest już zwalnianą alokacją sterty. Aby sprawdzić, czy istnieje taka możliwość, "!avrf -hp -a parametr3" wyszuka dziennik śladów stosu ścieżek kodu, które przydzieliły/zwolniły ten adres z/do sterta i wyświetli te ślady stosu, jeśli są dostępne. Biblioteka MSDN zawiera listę kilku powodów, dla których aplikacje nie powinny używać interfejsów API IsBadXXXPtr: W środowisku wielozadaniowym z wyprzedzeniem istnieje możliwość zmiany dostępu procesu do testowanej pamięci. Wyłuszczenie potencjalnie nieprawidłowych wskaźników może wyłączyć rozszerzanie stosu w innych wątkach. Wątek wyczerpujący stos, gdy rozszerzenie stosu zostało wyłączone, powoduje natychmiastowe zakończenie procesu nadrzędnego bez wyskakującego okna błędów ani informacji diagnostycznych. Oczekuje się, że wątki w procesie będą współpracować w taki sposób, aby nie zwolnić pamięci, której potrzebuje druga. Użycie tej funkcji nie neguje konieczności wykonania tej czynności. Jeśli nie zostanie to zrobione, aplikacja może zakończyć się niepowodzeniem w nieprzewidywalny sposób. Ze względu na wszystkie te powody zalecamy, aby nigdy nie używać tych interfejsów API.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Adres początkowy.
  • Parametr 2 - Rozmiar bloku pamięci.
  • Parametr 3 - Adres strony wolnej pamięci.
  • Parametr 4 - Nieużyj.

Dodatkowe informacje
  • Warstwa testowa: Pamięć
  • Identyfikator zatrzymania: PROBE_FREE_MEM
  • Kod zatrzymania: 0x604
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Sondowanie strony straży.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli weryfikator aplikacji wykryje wywołanie IsBadXXXPtr dla alokacji pamięci zawierającej co najmniej jedną GUARD_PAGE. Jest to bardzo złe, ponieważ jest to bardzo możliwe, że ta GUARD_PAGE jest końcem bieżącego stosu wątku. Zgodnie z dokumentacją w bibliotece MSDN: wyłusanie potencjalnie nieprawidłowych wskaźników może wyłączyć rozszerzanie stosu w innych wątkach. Wątek wyczerpujący stos, gdy rozszerzenie stosu zostało wyłączone, powoduje natychmiastowe zakończenie procesu nadrzędnego bez wyskakującego okna błędów ani informacji diagnostycznych. Aby debugować ten przystanek, przyjrzyj się bieżącemu śladowi stosu (kb) i spróbuj ustalić, dlaczego obiekt wywołujący funkcji IsBadXXXPtr zakończył sondowanie GUARD_PAGE. Biblioteka MSDN zawiera listę kilku powodów, dla których aplikacje nie powinny używać interfejsów API IsBadXXXPtr: W środowisku wielozadaniowym z wyprzedzeniem istnieje możliwość zmiany dostępu procesu do testowanej pamięci. Wyłuszczenie potencjalnie nieprawidłowych wskaźników może wyłączyć rozszerzanie stosu w innych wątkach. Wątek wyczerpujący stos, gdy rozszerzenie stosu zostało wyłączone, powoduje natychmiastowe zakończenie procesu nadrzędnego bez wyskakującego okna błędów ani informacji diagnostycznych. Oczekuje się, że wątki w procesie będą współpracować w taki sposób, aby nie zwolnić pamięci, której potrzebuje druga. Użycie tej funkcji nie neguje konieczności wykonania tej czynności. Jeśli nie zostanie to zrobione, aplikacja może zakończyć się niepowodzeniem w nieprzewidywalny sposób. Ze względu na wszystkie te powody zalecamy, aby nigdy nie używać tych interfejsów API.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Adres początkowy.
  • Parametr 2 - Rozmiar bloku pamięci.
  • Parametr 3 - Adres strony straży.
  • Parametr 4 - Nieużyj.

Dodatkowe informacje
  • Warstwa testowa: Pamięć
  • Identyfikator zatrzymania: PROBE_GUARD_PAGE
  • Kod zatrzymania: 0x605
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Sondowanie adresu NULL.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli weryfikator aplikacji wykryje wywołanie IsBadXXXPtr z adresem NULL. Aby debugować ten przystanek, spójrz na bieżący ślad stosu (kb) i spróbuj ustalić, dlaczego obiekt wywołujący funkcji IsBadXXXPtr zakończył się adresem NULL. Zazwyczaj jest to znak, że ktoś nie sprawdza wartości zwracanej jednej z funkcji alokacji pamięci. Na przykład poniższy kod jest niepoprawny:

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.
//
}

Ten kod powinien zostać ponownie napisany w następujący sposób:

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.
//
}

Biblioteka MSDN zawiera listę kilku powodów, dla których aplikacje nie powinny używać interfejsów API IsBadXXXPtr: W środowisku wielozadaniowym z wyprzedzeniem istnieje możliwość zmiany dostępu procesu do testowanej pamięci. Wyłuszczenie potencjalnie nieprawidłowych wskaźników może wyłączyć rozszerzanie stosu w innych wątkach. Wątek wyczerpujący stos, gdy rozszerzenie stosu zostało wyłączone, powoduje natychmiastowe zakończenie procesu nadrzędnego bez wyskakującego okna błędów ani informacji diagnostycznych. Oczekuje się, że wątki w procesie będą współpracować w taki sposób, aby nie zwolnić pamięci, której potrzebuje druga. Użycie tej funkcji nie neguje konieczności wykonania tej czynności. Jeśli nie zostanie to zrobione, aplikacja może zakończyć się niepowodzeniem w nieprzewidywalny sposób. Ze względu na wszystkie te powody zalecamy, aby nigdy nie używać tych interfejsów API.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Nieużyj.
  • Parametr 2 - Nieużyj.
  • Parametr 3 - Nieużyj.
  • Parametr 4 - Nieużyj.

Dodatkowe informacje
  • Warstwa testowa: Pamięć
  • Identyfikator zatrzymania: PROBE_NULL
  • Kod zatrzymania: 0x606
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Sondowanie bloku pamięci z nieprawidłowym adresem początkowym lub rozmiarem.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli weryfikator aplikacji wykryje wywołanie IsBadXXXPtr z nieprawidłowym adresem początkowym (np. adresem trybu jądra, a nie normalnym adresem trybu użytkownika) lub nieprawidłowym rozmiarem buforu pamięci do sondowania. Aby debugować ten przystanek, sprawdź bieżący ślad stosu (kb) i spróbuj ustalić, dlaczego obiekt wywołujący funkcji IsBadXXXPtr zakończył się nieprawidłowym adresem lub rozmiarem. Wiele razy adres lub rozmiar są zwykłymi fałszywymi, np. niezainicjowanymi zmiennymi. Biblioteka MSDN zawiera listę kilku powodów, dla których aplikacje nie powinny używać interfejsów API IsBadXXXPtr: W środowisku wielozadaniowym z wyprzedzeniem istnieje możliwość zmiany dostępu procesu do testowanej pamięci. Wyłuszczenie potencjalnie nieprawidłowych wskaźników może wyłączyć rozszerzanie stosu w innych wątkach. Wątek wyczerpujący stos, gdy rozszerzenie stosu zostało wyłączone, powoduje natychmiastowe zakończenie procesu nadrzędnego bez wyskakującego okna błędów ani informacji diagnostycznych. Oczekuje się, że wątki w procesie będą współpracować w taki sposób, aby nie zwolnić pamięci, której potrzebuje druga. Użycie tej funkcji nie neguje konieczności wykonania tej czynności. Jeśli nie zostanie to zrobione, aplikacja może zakończyć się niepowodzeniem w nieprzewidywalny sposób. Ze względu na wszystkie te powody zalecamy, aby nigdy nie używać tych interfejsów API.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Adres początkowy.
  • Parametr 2 - Rozmiar bloku pamięci.
  • Parametr 3 - Nieużyj.
  • Parametr 4 - Nieużyj.

Dodatkowe informacje
  • Warstwa testowa: Pamięć
  • Identyfikator zatrzymania: PROBE_INVALID_START_OR_SIZE
  • Kod zatrzymania: 0x607
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Zwalnianie biblioteki DLL z nieprawidłowym rozmiarem lub adresem początkowym.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli weryfikator aplikacji wykryje zwalnianie biblioteki DLL z nieprawidłowym adresem początkowym lub rozmiarem zakresu pamięci biblioteki DLL. Prawdopodobnie oznacza to uszkodzenie pamięci wewnątrz wewnętrznej ntdll.dll załadowanej listy bibliotek DLL.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - DLL adres podstawowy pamięci.
  • Parametr 2 - DLL rozmiar zakresu pamięci.
  • Parametr 3 -DLL name address (Adres nazwy biblioteki DLL ). Użyj zrzutu, aby go zrzucić.
  • Parametr 4 - Nieużyj.

Dodatkowe informacje
  • Warstwa testowa: Pamięć
  • Identyfikator zatrzymania: INVALID_DLL_RANGE
  • Kod zatrzymania: 0x608
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Zwalnianie bloku pamięci wewnątrz zakresu adresów stosu bieżącego wątku.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli weryfikator aplikacji wykryje wirtualny blok pamięci, który jest faktycznie częścią stosu bieżącego wątku (!). Aby debugować ten przystanek, przyjrzyj się bieżącemu śladowi stosu (kb) i spróbuj zrozumieć, dlaczego funkcja o nazwie VirtualFree myślała, że blok pamięci został dynamicznie przydzielony lub zamapowany, ale w rzeczywistości pamięć przydzielona ze stosu.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Adres podstawowy alokacji.
  • Parametr 2 - Rozmiar regionu pamięci.
  • Parametr 3 - Adres niskiego limitu stosu.
  • Parametr 4 - Adres wysokiego limitu stosu.

Dodatkowe informacje
  • Warstwa testowa: Pamięć
  • Identyfikator zatrzymania: FREE_THREAD_STACK_MEMORY
  • Kod zatrzymania: 0x609
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Nieprawidłowy parametr FreeType dla operacji VirtualFree.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli weryfikator aplikacji wykryje virtualfree z nieprawidłową wartością parametru FreeType. Jedyne dwie dopuszczalne wartości tego parametru to MEM_DECOMMIT i MEM_RELEASE. Jeśli funkcja VirtualFree jest wywoływana z dowolną inną wartością z wyjątkiem tych dwóch, usługa VirtualFree nie zwolni pamięci. Aby debugować ten przystanek, spójrz na bieżący ślad stosu (kb): obiekt wywołujący VirtualFree jest prawdopodobnie winowajcą.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Niepoprawna wartość używana przez aplikację.
  • Parametr 2 - Oczekiwano poprawnej wartości 1.
  • Parametr 3 - Oczekiwano poprawnej wartości 2.
  • Parametr 4 - Nieużyj.

Dodatkowe informacje
  • Warstwa testowa: Pamięć
  • Identyfikator zatrzymania: INVALID_FREE_TYPE
  • Kod zatrzymania: 0x60A
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Próba zwolnienia bloku pamięci wirtualnej, który jest już bezpłatny.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli weryfikator aplikacji wykryje wirtualnyfree dla adresu, który jest już bezpłatny. Aby debugować ten przystanek, przyjrzyj się bieżącemu śladowi stosu (kb) i spróbuj ustalić, dlaczego pamięć jest już bezpłatna, ale aplikacja próbuje go zwolnić ponownie. '!avrf -vs -a parametr1" wyszuka dziennik śladów stosu ścieżek kodu, które przydzielono/zwolnił ten adres i wyświetli te ślady stosu, jeśli są dostępne. Może to spowodować wyświetlenie śladu stosu, który zwolnił tę pamięć.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Adres bloku pamięci.
  • Parametr 2 - Nieużyj.
  • Parametr 3 - Nieużyj.
  • Parametr 4 - Nieużyj.

Dodatkowe informacje
  • Warstwa testowa: Pamięć
  • Identyfikator zatrzymania: MEM_ALREADY_FREE
  • Kod zatrzymania: 0x60B
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Nieprawidłowy parametr rozmiaru dla operacji VirtualFree (MEM_RELEASE).

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli weryfikator aplikacji wykryje virtualfree (MEM_RELEASE) z wartością inną niż zero dla parametru dwSize. W przypadku używania MEM_RELEASE jedyną akceptowalną wartością tego parametru jest 0. Jeśli funkcja VirtualFree jest wywoływana z dowolną inną wartością z wyjątkiem 0, virtualfree nie zwolni pamięci. Aby debugować ten przystanek, spójrz na bieżący ślad stosu (kb): obiekt wywołujący VirtualFree jest prawdopodobnie winowajcą.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Niepoprawny rozmiar używany przez aplikację.
  • Parametr 2 - Oczekiwano poprawnego rozmiaru (0).
  • Parametr 3 - Nieużyj.
  • Parametr 4 - Nieużyj.

Dodatkowe informacje
  • Warstwa testowa: Pamięć
  • Identyfikator zatrzymania: INVALID_FREE_SIZE
  • Kod zatrzymania: 0x60C
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Nieoczekiwany wyjątek zgłoszony w procedurze punktu wejścia biblioteki DLL.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli funkcja punktu wejścia biblioteki DLL (DllMain) zgłasza wyjątek. Jednym z przykładów, dlaczego jest to złe, jest to: jeśli biblioteka DllMain(DLL_PROCESS_ATTACH) zgłasza wyjątek, moduł ładujący dll systemu Windows będzie: — przechwyć i ukryć wyjątek; — Zwalnianie biblioteki DLL bez wywoływania jej biblioteki DllMain(DLL_PROCESS_DETACH). W wielu przypadkach biblioteka DLL przydzieliła już niektóre zasoby, a następnie zgłosiła wyjątek i nie będzie miała możliwości wydania tych zasobów w dllMain (DLL_PROCESS_DETACH). Aby debugować ten przystanek:

  • du <parameter1> — aby wyświetlić nazwę biblioteki DLL;
  • .exr <parameter2> — aby wyświetlić informacje o wyjątku;
  • .cxr <parametr3> , a następnie kb — aby wyświetlić informacje kontekstowe wyjątku i ślad stosu w czasie zgłoszenia wyjątku;
  • < parametr4> jest adresem wewnętrznej struktury weryfikatora i nie ma żadnego znaczenia dla większości użytkowników weryfikatora.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - DLL name (użyj zrzutu, aby go zrzucić).
  • Parametr 2 - Rekord wyjątku. Użyj polecenia .exr, aby go wyświetlić.
  • Parametr 3 - Rekord kontekstu. Użyj narzędzia .cxr, aby go wyświetlić.
  • Parametr 4 - Weryfikator dll deskryptor

Dodatkowe informacje
  • Warstwa testowa: Pamięć
  • Identyfikator zatrzymania: DLL_UNEXPECTED_EXCEPTION
  • Kod zatrzymania: 0x60D
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Nieoczekiwany wyjątek zgłoszony w funkcji wątku.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli funkcja wątku zgłasza wyjątek. Jest to złe, ponieważ cały proces zostanie zabity. Aby debugować ten przystanek:

  • < parametr1> może być znaczący dla typu wyjątku. Na przykład kod wyjątku C0000005 oznacza naruszenie dostępu;
  • .exr <parameter2> — aby wyświetlić informacje o wyjątku;
  • .cxr <parametr3> , a następnie kb — aby wyświetlić informacje kontekstowe wyjątku.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Kod wyjątku.
  • Parametr 2 - Rekord wyjątku. Użyj polecenia .exr, aby go wyświetlić.
  • Parametr 3 - Rekord kontekstu. Użyj narzędzia .cxr, aby go wyświetlić.
  • Parametr 4 - Nieużyj.

Dodatkowe informacje
  • Warstwa testowa: Pamięć
  • Identyfikator zatrzymania: THREAD_UNEXPECTED_EXCEPTION
  • Kod zatrzymania: 0x60E
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Nieoczekiwany wyjątek zgłoszony podczas sondowania pamięci.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli otrzymamy wyjątek podczas wywołania IsBadXXXPtr. Oznacza to, że bufor pamięci, który sondujemy, nie ma ochrony zakładanej przez obiekt wywołujący lub że pamięć została już zwolniona itp. Zapoznaj się z powyższym omówieniem innego kodu zatrzymania (PROBE_INVALID_ADDRESS, PROBE_FREE_MEM, PROBE_GUARD_PAGE, PROBE_NULL, PROBE_INVALID_START_OR_SIZE), aby uzyskać więcej przykładów, dlaczego używanie interfejsów API IsBadXXXPtr nie jest zalecane. Aby debugować ten przystanek:

  • < parametr1> zazwyczaj będzie C0000005 i oznacza to naruszenie dostępu;
  • .exr <parameter2> — aby wyświetlić informacje o wyjątku;
  • .cxr <parametr3> , a następnie kb — aby wyświetlić informacje o kontekście wyjątku i ślad stosu w momencie zgłoszenia wyjątku.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Kod wyjątku.
  • Parametr 2 - Rekord wyjątku. Użyj polecenia .exr, aby go wyświetlić.
  • Parametr 3 - Rekord kontekstu. Użyj narzędzia .cxr, aby go wyświetlić.
  • Parametr 4 - Nieużytne

Dodatkowe informacje
  • Warstwa testowa: Pamięć
  • Identyfikator zatrzymania: PROBE_UNEXPECTED_EXCEPTION
  • Kod zatrzymania: 0x60F
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Próba zresetowania adresu NULL.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli weryfikator aplikacji wykryje wywołanie VirtualFree (MEM_RESET) z pierwszym parametrem o wartości NULL. MEM_RESET należy używać tylko dla już przydzielonej pamięci, więc wartość NULL nie jest prawidłowym pierwszym parametrem w tym przypadku.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Nieużyj.
  • Parametr 2 - Nieużyj.
  • Parametr 3 - Nieużyj.
  • Parametr 4 - Nieużyj.

Dodatkowe informacje
  • Warstwa testowa: Pamięć
  • Identyfikator zatrzymania: INVALID_MEM_RESET
  • Kod zatrzymania: 0x610
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Zwalnianie bloku pamięci stertowej wewnątrz zakresu adresów stosu bieżącego wątku.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli weryfikator aplikacji wykryje heapFree dla bloku pamięci, który jest faktycznie częścią stosu bieżącego wątku (!). Aby debugować ten przystanek, przyjrzyj się bieżącemu śladowi stosu (kb) i spróbuj zrozumieć, dlaczego funkcja o nazwie HeapFree myślała, że blok pamięci został dynamicznie przydzielony lub zamapowany, ale faktycznie pamięć przydzielona ze stosu.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Adres podstawowy alokacji.
  • Parametr 2 - Rozmiar regionu pamięci.
  • Parametr 3 - Adres niskiego limitu stosu.
  • Parametr 4 - Adres wysokiego limitu stosu.

Dodatkowe informacje
  • Warstwa testowa: Pamięć
  • Identyfikator zatrzymania: FREE_THREAD_STACK_MEMORY_AS_HEAP
  • Kod zatrzymania: 0x612
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Usuń mapowanie obszaru pamięci wewnątrz zakresu adresów stosu bieżącego wątku.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli weryfikator aplikacji wykryje obiekt UnmapViewOfFile dla bloku pamięci, który jest faktycznie częścią stosu bieżącego wątku (!). Aby debugować ten przystanek, przyjrzyj się bieżącemu śladowi stosu (kb) i spróbuj zrozumieć, dlaczego funkcja o nazwie UnmapViewOfFile uważała, że blok pamięci został dynamicznie przydzielony lub zamapowany, ale faktycznie została przydzielona pamięć ze stosu.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Adres podstawowy alokacji.
  • Parametr 2 - Rozmiar regionu pamięci.
  • Parametr 3 - Adres niskiego limitu stosu.
  • Parametr 4 - Adres wysokiego limitu stosu.

Dodatkowe informacje
  • Warstwa testowa: Pamięć
  • Identyfikator zatrzymania: FREE_THREAD_STACK_MEMORY_AS_MAP
  • Kod zatrzymania: 0x613
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Nieprawidłowy adres RTL_RESOURCE.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli aplikacja próbuje użyć wartości NULL lub innego nieprawidłowego adresu (np. adresu trybu jądra) jako adresu prawidłowego obiektu. RtlInitializeResource (NULL) to nieprawidłowe wywołanie interfejsu API, które spowoduje wyzwolenie tego rodzaju zatrzymania weryfikatora. parametrm1 to niepoprawny używany adres, a winowajca znajduje się na ślad stosu (wyświetl go za pomocą kb).

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Adres.
  • Parametr 2 - Nieużyj.
  • Parametr 3 - Nieużyj.
  • Parametr 4 - Nieużyj.

Dodatkowe informacje
  • Warstwa testowa: Pamięć
  • Identyfikator zatrzymania: INVALID_RESOURCE_ADDRESS
  • Kod zatrzymania: 0x614
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Nieprawidłowy adres sekcji krytycznej.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli aplikacja próbuje użyć wartości NULL lub innego nieprawidłowego adresu (np. adresu trybu jądra) jako adresu prawidłowego obiektu. EnterCriticalSection(NULL) to nieprawidłowe wywołanie interfejsu API, które spowoduje wyzwolenie tego rodzaju zatrzymania weryfikatora. parametrm1 to niepoprawny używany adres, a winowajca znajduje się na ślad stosu (wyświetl go za pomocą kb).

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Adres.
  • Parametr 2 - Nieużyj.
  • Parametr 3 - Nieużyj.
  • Parametr 4 - Nieużyj.

Dodatkowe informacje
  • Warstwa testowa: Pamięć
  • Identyfikator zatrzymania: INVALID_CRITSECT_ADDRESS
  • Kod zatrzymania: 0x615
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Spróbuj wykonać kod w pamięci nie wykonywalnej.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli aplikacja próbuje uruchomić kod z adresu, który nie jest wykonywalny lub bezpłatny. Aby debugować ten przystanek:

  • u <parametr2> — aby usunąć winowajcę kodu
  • .exr <parameter3> — aby wyświetlić informacje o wyjątku
  • .cxr <parametr4> , a następnie kb — aby wyświetlić informacje kontekstowe wyjątku i ślad stosu w czasie zgłoszenia wyjątku.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Adres, do których uzyskuje się dostęp.
  • Parametr 2 - Kod wykonujący nieprawidłowy dostęp.
  • Parametr 3 - Rekord wyjątku. Użyj polecenia .exr, aby go wyświetlić.
  • Parametr 4 - Rekord kontekstu. Użyj narzędzia .cxr, aby go wyświetlić.

Dodatkowe informacje
  • Warstwa testowa: Pamięć
  • Identyfikator zatrzymania: THREAD_UNEXPECTED_EXCEPTION_CODE
  • Kod zatrzymania: 0x616
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Nieoczekiwany wyjątek zgłoszony podczas inicjowania buforu wyjściowego.

Prawdopodobna przyczyna

Ten zatrzymanie jest generowane, jeśli otrzymamy wyjątek podczas inicjowania buforu określonego jako parametr wyjściowy dla interfejsu API Win32 lub CRT. Zazwyczaj oznacza to, że określony rozmiar buforu wyjściowego jest niepoprawny. Aby debugować ten przystanek:

  • .exr <parameter3> — aby wyświetlić informacje o wyjątku
  • .cxr <parametr4> , a następnie kb — aby wyświetlić informacje kontekstowe wyjątku i ślad stosu w czasie zgłoszenia wyjątku.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Bufor adresu początkowego.
  • Parametr 2 - Rozmiar buforu.
  • Parametr 3 - Rekord wyjątku. Użyj polecenia .exr, aby go wyświetlić.
  • Parametr 4 - Rekord kontekstu. Użyj narzędzia .cxr, aby go wyświetlić.

Dodatkowe informacje
  • Warstwa testowa: Pamięć
  • Identyfikator zatrzymania: OUTBUFF_UNEXPECTED_EXCEPTION
  • Kod zatrzymania: 0x617
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Nieoczekiwany wyjątek podczas próby znalezienia rozmiaru bloku sterty.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli otrzymamy wyjątek podczas wywoływania funkcji HeapSize dla bloku stert, który jest zwalniany. Zazwyczaj oznacza to, że określony adres bloku sterty jest niepoprawny lub sterta jest uszkodzona. Aby debugować ten przystanek:

  • .exr <parameter3> — aby wyświetlić rekord wyjątku
  • .cxr <parametr4> , a następnie kb — aby wyświetlić informacje kontekstowe wyjątku i ślad stosu w czasie zgłoszenia wyjątku.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Adres zwalnianego bloku stert.
  • Parametr 2 - Uchwyt stertowy.
  • Parametr 3 - Rekord wyjątku. Użyj polecenia .exr, aby go wyświetlić.
  • Parametr 4 - Rekord kontekstu. Użyj narzędzia .cxr, aby go wyświetlić.

Dodatkowe informacje
  • Warstwa testowa: Pamięć
  • Identyfikator zatrzymania: SIZE_HEAP_UNEXPECTED_EXCEPTION
  • Kod zatrzymania: 0x618
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Zwalnianie bloku pamięci z nieprawidłowym adresem początkowym.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli program wywołuje funkcję VirtualFree (MEM_RELEASE) z parametrem lpAddress, który nie jest adresem podstawowym zwracanym przez funkcję VirtualAlloc lub VirtualAllocEx, gdy region stron był zarezerwowany; Aby debugować ten przystanek:

  • kb — aby wyświetlić bieżący ślad stosu, który wywołuje funkcję VirtualFree. Prawdopodobnym winowajcą jest biblioteka DLL, która wywołuje VirtualFree.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Adres zwalnianego bloku pamięci.
  • Parametr 2 - Oczekiwano poprawnego adresu bloku pamięci.
  • Parametr 3 - Nieużyj.
  • Parametr 4 - Nieużyj.

Dodatkowe informacje
  • Warstwa testowa: Pamięć
  • Identyfikator zatrzymania: INVALID_FREEMEM_START_ADDRESS
  • Kod zatrzymania: 0x619
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Usuń mapowanie bloku pamięci z nieprawidłowym adresem początkowym.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli program wywołuje polecenie UnmapViewOfFile z parametrem lpBaseAddress, który nie jest identyczny z wartością zwróconą przez poprzednie wywołanie funkcji MapViewOfFile lub MapViewOfFileEx. Aby debugować ten przystanek:

  • kb — aby wyświetlić bieżący ślad stosu, który wywołuje metodę UnmapViewOfFile. Prawdopodobnym winowajcą jest biblioteka DLL, która wywołuje unmapViewOfFile.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Adres niezamapowanego bloku pamięci.
  • Parametr 2 - Oczekiwano poprawnego adresu bloku pamięci.
  • Parametr 3 - Nieużyj.
  • Parametr 4 - Nieużyj.

Dodatkowe informacje
  • Warstwa testowa: Pamięć
  • Identyfikator zatrzymania: INVALID_UNMAPVIEW_START_ADDRESS
  • Kod zatrzymania: 0x61A
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

nieoczekiwany wyjątek zgłoszony w funkcji wywołania zwrotnego puli wątków.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli funkcja wywołania zwrotnego w wątku puli wątków zgłasza wyjątek. Aby debugować ten przystanek:

  • < parametr1> może być znaczący dla typu wyjątku. Na przykład kod wyjątku C0000005 oznacza naruszenie dostępu.
  • .exr <parameter2> — aby wyświetlić informacje o wyjątku.
  • .cxr <parametr3> , a następnie kb — aby wyświetlić informacje kontekstowe wyjątku.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Kod wyjątku
  • Parametr 2 - Rekord wyjątku. Użyj polecenia .exr, aby go wyświetlić
  • Parametr 3 - Rekord kontekstu. Użyj narzędzia .cxr, aby go wyświetlić
  • Parametr 4 - Nieużytne

Dodatkowe informacje
  • Warstwa testowa: Pamięć
  • Identyfikator zatrzymania: THREADPOOL_UNEXPECTED_EXCEPTION
  • Kod zatrzymania: 0x61B
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

kod w pamięci nie wykonywalnej

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli aplikacja próbuje uruchomić kod z adresu, który nie jest wykonywalny lub bezpłatny. Aby debugować ten przystanek:

  • u <parametr2> — aby usunąć winowajcę kodu
  • .exr <parameter3> — aby wyświetlić informacje o wyjątku
  • .cxr <parametr4> , a następnie kb — aby wyświetlić informacje kontekstowe wyjątku i ślad stosu w czasie zgłoszenia wyjątku.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Adres, do których uzyskuje się dostęp
  • Parametr 2 - Kod wykonujący nieprawidłowy dostęp
  • Parametr 3 - Rekord wyjątku. Użyj polecenia .exr, aby go wyświetlić.
  • Parametr 4 - Rekord kontekstu. Użyj narzędzia .cxr, aby go wyświetlić.

Dodatkowe informacje
  • Warstwa testowa: Pamięć
  • Identyfikator zatrzymania: THREADPOOL_UNEXPECTED_EXCEPTION_CODE
  • Kod zatrzymania: 0x61C
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Tworzenie sterta wykonywalnego.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli aplikacja tworzy stertę wykonywalną. Może to być zagrożenie bezpieczeństwa.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Nieużyj.
  • Parametr 2 - Nieużyj.
  • Parametr 3 - Nieużyj.
  • Parametr 4 - Nieużyj.

Dodatkowe informacje
  • Warstwa testowa: Pamięć
  • Identyfikator zatrzymania: EXECUTABLE_HEAP
  • Kod zatrzymania: 0x61D
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Przydzielanie pamięci wykonywalnej.

Prawdopodobna przyczyna

Ten zatrzymanie jest generowane, jeśli aplikacja przydziela pamięć wykonywalną. Może to być zagrożenie bezpieczeństwa.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Ochrona strony określona przez obiekt wywołujący.
  • Parametr 2 - Nieużyj.
  • Parametr 3 - Nieużyj.
  • Parametr 4 - Nieużyj.

Dodatkowe informacje
  • Warstwa testowa: Pamięć
  • Identyfikator zatrzymania: EXECUTABLE_MEMORY
  • Kod zatrzymania: 0x61E
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Próba wykonania kodu w pamięci nie wykonywalnej (pierwsza szansa).

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli aplikacja próbuje uruchomić kod z adresu, który nie jest wykonywalny lub bezpłatny. Aby debugować ten przystanek:

  • u <parametr2> — aby usunąć winowajcę kodu
  • .exr <parameter3> — aby wyświetlić informacje o wyjątku
  • .cxr <parametr4> , a następnie kb — aby wyświetlić informacje kontekstowe wyjątku i ślad stosu w czasie zgłoszenia wyjątku.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Adres, do których uzyskuje się dostęp.
  • Parametr 2 - Kod wykonujący nieprawidłowy dostęp.
  • Parametr 3 - Rekord wyjątku. Użyj polecenia .exr, aby go wyświetlić.
  • Parametr 4 - Rekord kontekstu. Użyj narzędzia .cxr, aby go wyświetlić.

Dodatkowe informacje
  • Warstwa testowa: Wyjątki
  • Identyfikator zatrzymania: FIRST_CHANCE_ACCESS_VIOLATION_CODE
  • Kod zatrzymania: 0x650
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Priorytet tego wątku wątku został zmieniony.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli priorytet wątku zostanie zmieniony po powrocie do puli wątków.

Informacje wyświetlane przez weryfikatora aplikacji
  • Format: -  threadpool thread (%x) po wykonaniu wywołania zwrotnego (%p) ma zmieniony priorytet wątku (%i -> %i)
  • Parametr 1 - Callback, funkcja.
  • Parametr 2 - Context.
  • Parametr 3 - Threadpool Object allocation stack trace , użyj dps, aby go zrzucić.
  • Parametr 4 - Bieżący priorytet.

Dodatkowe informacje
  • Warstwa testowa: Pula wątków
  • Identyfikator zatrzymania: INCONSISTENT_PRIORITY
  • Kod zatrzymania: 0x700
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Koligacja tego wątku wątku została zmieniona.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli koligacja wątku zostanie zmieniona po powrocie do puli wątków.

Informacje wyświetlane przez weryfikatora aplikacji
  • Format: - threadpool thread (%x) po wykonaniu wywołania zwrotnego (%p) ma zmienioną maskę koligacji wątku (%p -> %p)
  • Parametr 1 - Callback, funkcja.
  • Parametr 2 - Context.
  • Parametr 3 - Threadpool Object allocation stack trace , użyj dps, aby go zrzucić.
  • Parametr 4 - Bieżąca koligacja.

Dodatkowe informacje
  • Warstwa testowa: Pula wątków
  • Identyfikator zatrzymania: INCONSISTENT_AFFINITY_MASK
  • Kod zatrzymania: 0x701
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Nieprzetworzone msg w puli msg bieżącego wątku.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli jakikolwiek komunikat pozostawiony jako nieprzetworzony po powrocie tego wątku wątku do puli. Jest to niebezpieczne, ponieważ zostanie przetworzone w zupełnie innym kontekście. Użyj polecenia !avrf -tp <Param4> , aby wyświetlić komunikaty opublikowane w tym wątku.

Informacje wyświetlane przez weryfikatora aplikacji
  • Format: - threadpool thread (%x) po wykonaniu wywołania zwrotnego (%p) ma zaległy komunikat okna (%x: %x)
  • Parametr 1 - Callback, funkcja.
  • Parametr 2 - Context.
  • Parametr 3 - Threadpool Object allocation stack trace , użyj dps, aby go zrzucić.
  • Parametr 4 - Threadpool thread id. Użyj !avrf -tp <threadid> , aby wyświetlić komunikaty opublikowane w tym wątku.

Dodatkowe informacje
  • Warstwa testowa: Pula wątków
  • Identyfikator zatrzymania: ORPHANED_THREAD_MESSAGE
  • Kod zatrzymania: 0x702
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Nieujawniane okno należało do bieżącego wątku.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli jakiekolwiek okno jest aktywne, gdy ten wątek wątku zostanie zwrócony do puli.

Informacje wyświetlane przez weryfikatora aplikacji
  • Format: -  threadpool thread (%x) po wykonaniu wywołania zwrotnego (%p) ma prawidłowy hwnd (%x: %s), który może odbierać komunikaty
  • Parametr 1 - Callback, funkcja.
  • Parametr 2 - Context.
  • Parametr 3 - Threadpool Object allocation stack trace , użyj dps, aby go zrzucić.
  • Parametr 4 - Threadpool thread id.

Dodatkowe informacje
  • Warstwa testowa: Pula wątków
  • Identyfikator zatrzymania: ORPHANED_THREAD_WINDOW
  • Kod zatrzymania: 0x703
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

ExitThread() w wątku puli wątków.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli element ExitThread jest wywoływany w wątku puli wątków. Jest zabronione, ponieważ sprawi, że system będzie niestabilny. Spowoduje to wyciek zasobów, zamrożenie lub av.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Callback, funkcja.
  • Parametr 2 - Context.
  • Parametr 3 - Threadpool Object allocation stack trace , użyj dps, aby go zrzucić.
  • Parametr 4 - Nieużytne.

Dodatkowe informacje
  • Warstwa testowa: Pula wątków
  • Identyfikator zatrzymania: ILLEGAL_THREAD_EXIT
  • Kod zatrzymania: 0x704
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Wątek jest w stanie personifikacji po powrocie do wątku puli wątków.

Prawdopodobna przyczyna

Ten zatrzymanie jest generowane, jeśli funkcja wywołania zwrotnego zmieni token wątku, aby personifikować innego użytkownika i nie pamiętać, aby go zresetować przed zwróceniem go z powrotem do puli wątków.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Callback, funkcja.
  • Parametr 2 - Context.
  • Parametr 3 - Threadpool Object allocation stack trace , użyj dps, aby go zrzucić.
  • Parametr 4 - Nieużytne.

Dodatkowe informacje
  • Warstwa testowa: Pula wątków
  • Identyfikator zatrzymania: THREAD_IN_IMPERSONATION
  • Kod zatrzymania: 0x705
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Wywoływana jest funkcja, która wymaga trwałego wątku.

Prawdopodobna przyczyna

Niektóre interfejsy API systemu Microsoft Windows muszą być wywoływane wewnątrz dedykowanego lub trwałego wątku. W puli wątków należy zwykle unikać używania magazynu lokalnego wątku i kolejkowania wywołań asynchronicznych, które wymagają trwałego wątku, takiego jak funkcja RegNotifyChangeKeyValue. Jednak takie funkcje można kolejkować do trwałego wątku roboczego przy użyciu elementu QueueUserWorkItem z opcją WT_EXECUTEINPERSISTENTTHREAD. W debugerze zostanie ujawniony obiekt wywołujący.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Callback, funkcja.
  • Parametr 2 - Context.
  • Parametr 3 - Threadpool Object allocation stack trace , użyj dps, aby go zrzucić.
  • Parametr 4 - Nieużytne.

Dodatkowe informacje
  • Warstwa testowa: Pula wątków
  • Identyfikator zatrzymania: PERSISTED_THREAD_NEEDED
  • Kod zatrzymania: 0x706
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Wątek jest w stanie brudnej transakcji.

Prawdopodobna przyczyna

Ten zatrzymanie jest generowane, jeśli funkcja wywołania zwrotu nie pamięta o zamknięciu lub zresetowaniu bieżącego dojścia transakcji.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Callback, funkcja.
  • Parametr 2 - Context.
  • Parametr 3 - Threadpool Object allocation stack trace , użyj dps, aby go zrzucić.
  • Parametr 4 - Dojście transakcji.

Dodatkowe informacje
  • Warstwa testowa: Pula wątków
  • Identyfikator zatrzymania: DIRTY_TRANSACTION_CONTEXT
  • Kod zatrzymania: 0x707
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Ten stan puli wątków ma niezrównoważone wywołania CoInit i CoUnInit.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli funkcja wywołania zwrotnego wywołuje moduł CoInit i CoUnInit niezrównoważone.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Callback, funkcja.
  • Parametr 2 - Context.
  • Parametr 3 - Threadpool Object allocation stack trace , użyj dps, aby go zrzucić.
  • Parametr 4 - Zrównoważone liczby wywołań.

Dodatkowe informacje
  • Warstwa testowa: Pula wątków
  • Identyfikator zatrzymania: DIRTY_COM_STATE
  • Kod zatrzymania: 0x708
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Parametry obiektu czasomierza są niespójne. Okres powinien wynosić 0, gdy WT_EXECUTEONLYONCE jest określony podczas tworzenia czasomierza

Prawdopodobna przyczyna

Ten zatrzymanie jest generowane, jeśli okres sygnalizowania czasomierza nie jest zerowy, gdy czasomierz jest ustawiony na sygnał tylko raz z flagą WT_EXECUTEONLYONCE

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Określony okres.
  • Parametr 2 - Flagi określone.
  • Parametr 3 - Nieużytne.
  • Parametr 4 - Nieużytne.

Dodatkowe informacje
  • Warstwa testowa: Pula wątków
  • Identyfikator zatrzymania: INCONSISTENT_TIMER_PARAMS
  • Kod zatrzymania: 0x709
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Blokada modułu ładującego została zatrzymana przez wątek puli wątków w ramach wywołania zwrotnego.

Prawdopodobna przyczyna

Ten zatrzymanie jest generowane, jeśli blokada modułu ładującego jest przechowywana w wywołaniu zwrotnym i nie jest zwalniana po powrocie wątku do puli wątków.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Callback, funkcja.
  • Parametr 2 - Context.
  • Parametr 3 - Threadpool Object allocation stack trace , użyj dps, aby go zrzucić.
  • Parametr 4 - Nieużytne.

Dodatkowe informacje
  • Warstwa testowa: Pula wątków
  • Identyfikator zatrzymania: LOADER_LOCK_HELD
  • Kod zatrzymania: 0x70A
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Preferowany język jest ustawiany przez wątek threadpool w wywołaniu zwrotnym.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli preferowany język jest ustawiony w wywołaniu zwrotnym i nie jest czyszczone po powrocie wątku do puli wątków.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Callback, funkcja.
  • Parametr 2 - Context.
  • Parametr 3 - Threadpool Object allocation stack trace , użyj dps, aby go zrzucić.
  • Parametr 4 - Nieużytne.

Dodatkowe informacje
  • Warstwa testowa: Pula wątków
  • Identyfikator zatrzymania: PREFERRED_LANGUAGES_SET
  • Kod zatrzymania: 0x70B
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Priorytet tła jest ustawiany przez wątek puli wątków w ramach wywołania zwrotnego.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli priorytet tła jest ustawiony w wywołaniu zwrotnym i nie jest wyłączony, gdy wątek zostanie zwrócony do puli wątków.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Callback, funkcja.
  • Parametr 2 - Context.
  • Parametr 3 - Threadpool Object allocation stack trace , użyj dps, aby go zrzucić.
  • Parametr 4 - Nieużytne.

Dodatkowe informacje
  • Warstwa testowa: Pula wątków
  • Identyfikator zatrzymania: BACKGROUND_PRIORITY_SET
  • Kod zatrzymania: 0x70C
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

TerminateThread() w wątku puli wątków.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli element TerminateThread jest wywoływany w wątku puli wątków. Jest zabronione, ponieważ sprawi, że system będzie niestabilny. Spowoduje to wyciek zasobów, zamrożenie lub av.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Nieużytne.
  • Parametr 2 - Nieużytne.
  • Parametr 3 - Nieużytne.
  • Parametr 4 - Nieużytne.

Dodatkowe informacje
  • Warstwa testowa: Pula wątków
  • Identyfikator zatrzymania: ILLEGAL_THREAD_TERMINATION
  • Kod zatrzymania: 0x70D
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Stos został unwinded, gdy oczekujące operacje we/wy asynchroniczne.

Prawdopodobna przyczyna

Ten zatrzymanie jest generowane, jeśli aplikacja wystawiła operację we/wy, która używa zmiennej stosu i nie czekała na zakończenie operacji we/wy, co prowadzi do uszkodzenia stosu. Aby debugować ten przystanek:

  • dps <parametr4> wyświetla ślad stosu podczas wystawiania operacji we/wy. Parametr1 wskazuje adres oparty na stosie i parametr3 wątek, który wystawił we/wy.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Adres zmiennej stosu używanej w we/wy.
  • Parametr 2 - Bieżący wskaźnik stosu.
  • Parametr 3 - Oryginalny wątek, który wydał we/wy.
  • Parametr 4 -Stack Trace when the I/O was issued (Śledzenie  stosu po wystawieniu operacji we/wy).

Dodatkowe informacje
  • Warstwa testowa: IO
  • Identyfikator zatrzymania: ASYNCIO_STACK_UNWIND
  • Kod zatrzymania: 0x800
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Stos został uszkodzony, gdy oczekująca operacja we/wy asynchronicznej.

Prawdopodobna przyczyna

Ten zatrzymanie jest generowane, jeśli aplikacja wystawiła operację we/wy, która używa zmiennej stosu i nie czekała na zakończenie operacji we/wy, co prowadzi do uszkodzenia stosu. Aby debugować ten przystanek:

  • dps <parametr4> wyświetla ślad stosu podczas wystawiania operacji we/wy. Parametr1 wskazuje adres oparty na stosie i parametr3 wątek, który wystawił we/wy.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Adres zmiennej stosu używanej w we/wy.
  • Parametr 2 - Bieżący wskaźnik stosu.
  • Parametr 3 - Oryginalny wątek, który wydał we/wy.
  • Parametr 4 -Stack Trace when the I/O was issued (Śledzenie  stosu po wystawieniu operacji we/wy).

Dodatkowe informacje
  • Warstwa testowa: IO
  • Identyfikator zatrzymania: ASYNCIO_CORRUPTED_STACK
  • Kod zatrzymania: 0x801
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Użycie zwolnionego adresu w oczekującej operacji we/wy.

Prawdopodobna przyczyna

Ten zatrzymanie jest generowane, jeśli aplikacja wystawiła operację we/wy i zwolniła pamięć używaną w we/wy przed ukończeniem operacji we/wy, co doprowadziło do uszkodzenia pamięci itp. Aby debugować ten przystanek:

  • dps <parametr4> — aby wyświetlić ślad stosu podczas wystawiania operacji we/wy. Parametr1 wskazuje adres używany w we/wy. Parametr2 wskazuje adres zwalniany i parametr3 wątku, który wystawił we/wy.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Adres używany w we/wy.
  • Parametr 2 - Adres jest zwalniany.
  • Parametr 3 - Oryginalny wątek, który wydał we/wy.
  • Parametr 4 -Stack Trace when the I/O was issued (Śledzenie  stosu po wystawieniu operacji we/wy).

Dodatkowe informacje
  • Warstwa testowa: IO
  • Identyfikator zatrzymania: FREED_ADDRESS_IN_PENDINGIO
  • Kod zatrzymania: 0x802
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Blok stanu we/wy (OVERLAPPED) jest ponownie używany, podczas gdy skojarzone żądanie we/wy nadal oczekuje.

Prawdopodobna przyczyna

Ten zatrzymanie jest generowane, jeśli aplikacja ponownie używa bloku stanu we/wy (NAKŁADANE) podczas żądania we/wy przy użyciu tego bloku stanu we/wy (NAKŁADANE) nadal oczekuje. Aby debugować ten przystanek:

  • dps <parametr3> , aby wyświetlić ślad stosu po wystawieniu oryginalnego we/wy. Parametr1 wskazuje adres używany w we/wy i parametr2 wątku, który wystawił we/wy.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Adres bloku stanu we/wy (NAKŁADAJĄCE SIĘ).
  • Parametr 2 - Oryginalny wątek, który wydał we/wy.
  • Parametr 3 -Stack Trace when the I/O was issued (Śledzenie  stosu po wystawieniu operacji we/wy).
  • Parametr 4 - Nieużytne.

Dodatkowe informacje
  • Warstwa testowa: IO
  • Identyfikator zatrzymania: REUSED_IOSTATUS_BLOCK
  • Kod zatrzymania: 0x803
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Używanie nieobsługiwanej flagi FILE_ATTRIBUTE_NOT_CONTENT_INDEXED w pliku CreateFile

Prawdopodobna przyczyna

Stara wersja msdn błędnie udokumentowane CreateFile jako obsługa FILE_ATTRIBUTE_NOT_CONTENT_INDEXED. Jeśli ta flaga ma być ustawiona przy użyciu innych funkcji interfejsu API, takich jak SetFileAttributes.

  • ln <parametr1> — aby znaleźć obiekt wywołujący metody CreateFile.

Informacje wyświetlane przez weryfikatora aplikacji
  • Format: -  CreateFile podczas zapisywania %hs%ws z flagami %08x %08x %08x
  • Parametr 1 - Adres zwrotny.
  • Parametr 2 - Nieużyj.
  • Parametr 3 - Nieużyj.
  • Parametr 4 - Nieużyj.

Dodatkowe informacje
  • Warstwa testowa: IO
  • Identyfikator zatrzymania: USING_BAD_CREATEFILE_FLAG
  • Kod zatrzymania: 0x804
  • Dotkliwość: Ostrzeżenie
  • Jednorazowy błąd: 
  • Raport o błędach: Żaden
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Wyciekła alokacja sterty.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli właściciel biblioteki DLL alokacji został dynamicznie zwolniony podczas posiadania zasobów.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Adres wycieku alokacji. Uruchom polecenie !sterta -p -a <adres> , aby uzyskać dodatkowe informacje o alokacji.
  • Parametr 2 - Adres do śledzenia stosu alokacji. Uruchom adres> dps<, aby wyświetlić stos alokacji.
  • Parametr 3 - Adres nazwy biblioteki dll właściciela. Uruchom polecenie du <address> , aby odczytać nazwę biblioteki dll.
  • Parametr 4 - Baza biblioteki dll właściciela. Uruchom polecenie .reload <dll_name> = <adres> , aby ponownie załadować bibliotekę dll właściciela. Użyj "lm", aby uzyskać więcej informacji na temat załadowanych i zwolnionych modułów.

Dodatkowe informacje
  • Warstwa testowa: Przeciek
  • Identyfikator zatrzymania: PRZYDZIAŁ
  • Kod zatrzymania: 0x900
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Wyciekł uchwyt.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli właściciel biblioteki DLL dojścia został dynamicznie zwolniony podczas posiadania zasobów. Aby debugować ten przystanek: Uruchom polecenie !htrace parameter1, aby uzyskać dodatkowe informacje o dojściu.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Wartość wycieku uchwytu. Uruchom polecenie !uchwyt htrace, <aby uzyskać dodatkowe informacje o dojściu> , jeśli śledzenie obsługi jest włączone.
  • Parametr 2 - Adres do śledzenia stosu alokacji. Uruchom adres> dps<, aby wyświetlić stos alokacji.
  • Parametr 3 - Adres nazwy biblioteki dll właściciela. Uruchom polecenie du <address> , aby odczytać nazwę biblioteki dll.
  • Parametr 4 - Baza biblioteki dll właściciela. Uruchom polecenie .reload <dll_name> = <adres> , aby ponownie załadować bibliotekę dll właściciela. Użyj "lm", aby uzyskać więcej informacji na temat załadowanych i zwolnionych modułów.

Dodatkowe informacje
  • Warstwa testowa: Przeciek
  • Identyfikator zatrzymania: UCHWYT
  • Kod zatrzymania: 0x901
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Wyciekł klucz HKEY.

Prawdopodobna przyczyna

Ten zatrzymanie jest generowane, jeśli biblioteka DLL właściciela klucza rejestru została dynamicznie zwolniona podczas posiadania zasobów.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Wartość wycieku klucza HKEY.
  • Parametr 2 - Adres do śledzenia stosu alokacji. Uruchom adres> dps<, aby wyświetlić stos alokacji.
  • Parametr 3 - Adres nazwy biblioteki dll właściciela. Uruchom polecenie du <address> , aby odczytać nazwę biblioteki dll.
  • Parametr 4 - Baza biblioteki dll właściciela. Uruchom polecenie .reload <dll_name> = <adres> , aby ponownie załadować bibliotekę dll właściciela. Użyj "lm", aby uzyskać więcej informacji na temat załadowanych i zwolnionych modułów.

Dodatkowe informacje
  • Warstwa testowa: Przeciek
  • Identyfikator zatrzymania: REJESTR
  • Kod zatrzymania: 0x902
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Wyciekła wirtualna rezerwacja.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli biblioteka DLL właściciela rezerwacji wirtualnej została dynamicznie zwolniona podczas posiadania zasobów.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Wyciekły adres rezerwacji.
  • Parametr 2 - Adres do śledzenia stosu alokacji. Uruchom adres> dps<, aby wyświetlić stos alokacji.
  • Parametr 3 - Adres nazwy biblioteki dll właściciela. Uruchom polecenie du <address> , aby odczytać nazwę biblioteki dll.
  • Parametr 4 - Baza biblioteki dll właściciela. Uruchom polecenie .reload <dll_name> = <adres> , aby ponownie załadować bibliotekę dll właściciela. Użyj "lm", aby uzyskać więcej informacji na temat załadowanych i zwolnionych modułów.

Dodatkowe informacje
  • Warstwa testowa: Przeciek
  • Identyfikator zatrzymania: VIRTUAL_RESERVATION
  • Kod zatrzymania: 0x903
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Wyciekł BSTR.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli właściciel biblioteki dll sysString został dynamicznie zwolniony podczas posiadania zasobów.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Adres wycieku BSTR. Uruchom polecenie !sterta -p -a <adres> , aby uzyskać dodatkowe informacje o alokacji.
  • Parametr 2 - Adres do śledzenia stosu alokacji. Uruchom adres> dps<, aby wyświetlić stos alokacji.
  • Parametr 3 - Adres nazwy biblioteki dll właściciela. Uruchom polecenie du <address> , aby odczytać nazwę biblioteki dll.
  • Parametr 4 - Baza biblioteki dll właściciela. Uruchom polecenie .reload <dll_name> = <adres> , aby ponownie załadować bibliotekę dll właściciela. Użyj "lm", aby uzyskać więcej informacji na temat załadowanych i zwolnionych modułów.

Dodatkowe informacje
  • Warstwa testowa: Przeciek
  • Identyfikator zatrzymania: SYSSTRING
  • Kod zatrzymania: 0x904
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Powiadomienie o zasilaniu nie zostało wyrejestrowane.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli biblioteka DLL zarejestrowana na potrzeby powiadomień o zasilaniu została dynamicznie zwolniona bez wyrejestrowywania.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Adres rejestracji powiadomień o zasilaniu.
  • Parametr 2 - Adres do śledzenia stosu rejestracji. Uruchom adres> dps<, aby wyświetlić stos alokacji.
  • Parametr 3 - Adres nazwy biblioteki dll właściciela. Uruchom polecenie du <address> , aby odczytać nazwę biblioteki dll.
  • Parametr 4 - Baza biblioteki dll właściciela. Uruchom polecenie .reload <dll_name> = <adres> , aby ponownie załadować bibliotekę dll właściciela. Użyj "lm", aby uzyskać więcej informacji na temat załadowanych i zwolnionych modułów.

Dodatkowe informacje
  • Warstwa testowa: Przeciek
  • Identyfikator zatrzymania: POWER_NOTIFICATION
  • Kod zatrzymania: 0x905
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Wyciekła alokacja MODELU COM.

Prawdopodobna przyczyna

Ten przystanek jest generowany, jeśli właściciel biblioteki DLL alokacji COM został dynamicznie zwolniony podczas posiadania zasobów.

Informacje wyświetlane przez weryfikatora aplikacji
  • Parametr 1 - Adres wycieku alokacji COM. Uruchom polecenie !sterta -p -a <adres> , aby uzyskać dodatkowe informacje o alokacji.
  • Parametr 2 - Adres do śledzenia stosu alokacji. Uruchom adres> dps<, aby wyświetlić stos alokacji.
  • Parametr 3 - Adres nazwy biblioteki dll właściciela. Uruchom polecenie du <address> , aby odczytać nazwę biblioteki dll.
  • Parametr 4 - Baza biblioteki dll właściciela. Uruchom polecenie .reload <dll_name> = <adres> , aby ponownie załadować bibliotekę dll właściciela. Użyj "lm", aby uzyskać więcej informacji na temat załadowanych i zwolnionych modułów.

Dodatkowe informacje
  • Warstwa testowa: Przeciek
  • Identyfikator zatrzymania: COM_ALLOCATION
  • Kod zatrzymania: 0x906
  • Dotkliwość: Błąd
  • Jednorazowy błąd: 
  • Raport o błędach: Przerwa
  • Zaloguj się do pliku: tak
  • Utwórz backtrace: tak

Zobacz też

Weryfikator aplikacji — kody i definicje zatrzymania

Weryfikator aplikacji — omówienie

Weryfikator aplikacji — funkcje

Weryfikator aplikacji — testowanie aplikacji

Weryfikator aplikacji — testy w weryfikatorze aplikacji

Weryfikator aplikacji — debugowanie weryfikatora aplikacji zatrzymuje się

Weryfikator aplikacji — często zadawane pytania