Freigeben über


Anwendungsüberprüfung – Stoppcodes – Netzwerk

Die folgenden Haltestellencodes sind in dieser Reihe von Tests enthalten.

Unzulässige Netzwerk-API von DllMain aufgerufen

Wahrscheinliche Ursache

Es wurde eine Netzwerk-API aufgerufen, deren Aufruf von DllMain aus nicht unterstützt wird. Viele Win32-APIs, nicht nur Win32-Netzwerk-APIs, können nicht von DllMain aus aufgerufen werden. Weitere Informationen finden Sie in der Dokumentation zu DllMain in der MSDN-Bibliothek. Um die Routine zu identifizieren, die den Aufruf gemacht hat, geben Sie den aktuellen Stack-Trace mit dem Befehl 'k' im Debugger aus.

Von Application Verifier angezeigte Informationen
  • Parameter 1 - Vernetzungsfunktion, die von DllMain aufgerufen wird
  • Parameter 2 - Name der Dll, die den ungültigen Aufruf macht, falls nicht NULL
  • Parameter 3 - Nicht verwendet
  • Parameter 4 - Nicht verwendet

Weitere Informationen
  • Testschicht: Vernetzung
  • Stop ID: UNSUPPORTED_API_CALL_IN_DLLMAIN
  • Stoppcode: 0000e000
  • Schweregrad: Fehler
  • Einmaliger Fehler: nein
  • Fehlerbericht: Pause
  • Protokollierung in Datei: ja
  • Rückverfolgung erstellen: ja

Versuch, ein geschlossenes SOCKET zu verwenden

Wahrscheinliche Ursache

Ein SOCKET wurde verwendet, nachdem es geschlossen worden war. Um die Routine zu identifizieren, die versucht hat, das geschlossene SOCKET zu benutzen, geben Sie den aktuellen Stack-Trace mit dem Befehl 'k' im Debugger aus. Um den Stack-Trace der Routine, die das SOCKET geschlossen hat, auszugeben, verwenden Sie den Befehl dps mit dem zweiten Parameter von stop.

Von Application Verifier angezeigte Informationen
  • Parameter 1 - SOCKET, auf das zugegriffen wird
  • Parameter 2 - Stack-Trace der Funktion, die das SOCKET geschlossen hat. Verwenden Sie dps, um den Stack-Trace auszugeben, falls nicht NULL
  • Parameter 3 - Nicht verwendet
  • Parameter 4 - Nicht verwendet

Weitere Informationen
  • Testschicht: Vernetzung
  • Stopp-ID: WSA_SOCKET_ALREADY_CLOSED
  • Stoppcode: 0000e001
  • Schweregrad: Fehler
  • Einmaliger Fehler: nein
  • Fehlerbericht: Pause
  • Protokollierung in Datei: ja
  • Rückverfolgung erstellen: ja

Versuch, ein unbekanntes SOCKET zu verwenden

Wahrscheinliche Ursache

Es wurde versucht, einen unbekannten Wert für ein SOCKET zu verwenden, das nicht durch einen Aufruf an Winsock erstellt wurde. Um die Stapelverfolgung der Routine, die diese Aktion versucht hat, zu sehen, verwenden Sie den Befehl 'k' im Debugger.

Von Application Verifier angezeigte Informationen
  • Parameter 1 - SOCKET, auf das zugegriffen wird
  • Parameter 2 - Nicht verwendet
  • Parameter 3 - Nicht verwendet
  • Parameter 4 - Nicht verwendet

Weitere Informationen
  • Testschicht: Vernetzung
  • Stopp-ID: WSA_INVALID_SOCKET_HANDLE
  • Stoppcode: 0000e002
  • Schweregrad: Fehler
  • Einmaliger Fehler: nein
  • Fehlerbericht: Pause
  • Protokollierung in Datei: ja
  • Rückverfolgung erstellen: ja

Durchgesickerter SOCKET-Handle entdeckt

Wahrscheinliche Ursache

Es wurde festgestellt, dass ein offenes SOCKET eines Winsock-Basisdienstanbieters von einer entladenen DLL durchgesickert war. Zur Fehlersuche bei diesem Stopp geben Sie den Stack-Trace des Threads aus, der das SOCKET-Handle geöffnet hat, indem Sie den Befehl dps im Debugger auf den zweiten Parameter dieses Prüfstopps anwenden.

Von Application Verifier angezeigte Informationen
  • Parameter 1 - SOCKET-Handle wird durchgelassen
  • Parameter 2 - Initialisierungs-Stapelverfolgung. Verwenden Sie dps, um den Stack zu löschen, wenn er nicht NULL ist
  • Parameter 3 - Thread-ID des Threads, der den Griff geöffnet hat
  • Parameter 4 - Nicht verwendet

Weitere Informationen
  • Testschicht: Vernetzung
  • Stopp-ID: WSA_LEAKED_SOCKET_HANDLE
  • Stoppcode: 0000e003
  • Schweregrad: Fehler
  • Einmaliger Fehler: nein
  • Fehlerbericht: Pause
  • Protokollierung in Datei: ja
  • Rückverfolgung erstellen: ja

Versuch, ein geschlossenes SOCKET zu verwenden

Wahrscheinliche Ursache

Ein SOCKET von einem Winsock-Basisprovider wurde verwendet, nachdem es geschlossen worden war. Dies deutet in der Regel auf einen Fehler in einem Layered Service Provider (einem LSP – einer DLL zwischen der Anwendung und Winsock) hin. Um die Routine zu identifizieren, die versucht hat, das geschlossene SOCKET zu benutzen, geben Sie den aktuellen Stack-Trace mit dem Befehl 'k' im Debugger aus. Um den Stack-Trace der Routine, die das SOCKET geschlossen hat, auszugeben, verwenden Sie den Befehl dps mit dem zweiten Parameter von stop.

Von Application Verifier angezeigte Informationen
  • Parameter 1 - SOCKET, auf das zugegriffen wird.
  • Parameter 2 - Stack-Trace der Funktion, die das SOCKET geschlossen hat. Verwenden Sie dps, um den Stack-Trace auszugeben, falls nicht NULL
  • Parameter 3 - Nicht verwendet
  • Parameter 4 - Nicht verwendet

Weitere Informationen
  • Testschicht: Vernetzung
  • Stopp-ID: WSP_SOCKET_ALREADY_CLOSED
  • Stoppcode: 0000e004
  • Schweregrad: Fehler
  • Einmaliger Fehler: nein
  • Fehlerbericht: Pause
  • Protokollierung in Datei: ja
  • Rückverfolgung erstellen: ja

Versuch, ein unbekanntes SOCKET zu verwenden

Wahrscheinliche Ursache

Ein unbekannter SOCKET-Handle-Wert wurde von einem Winsock-Layered Service Provider (LSP) verwendet. Dies deutet im Allgemeinen auf einen Fehler in einem bestimmten LSP hin, der zwischen der Anwendung und Winsock geschaltet ist. Um die Routine zu identifizieren, die versucht hat, das unbekannte SOCKET zu benutzen, geben Sie den aktuellen Stack-Trace mit dem Befehl 'k' im Debugger aus.

Von Application Verifier angezeigte Informationen
  • Parameter 1 - SOCKET, auf das zugegriffen wird
  • Parameter 2 - Nicht verwendet
  • Parameter 3 - Nicht verwendet
  • Parameter 4 - Nicht verwendet

Weitere Informationen
  • Testschicht: Vernetzung
  • Stopp-ID: WSP_INVALID_SOCKET_HANDLE
  • Stoppcode: 0000e005
  • Schweregrad: Fehler
  • Einmaliger Fehler: nein
  • Fehlerbericht: Pause
  • Protokollierung in Datei: ja
  • Rückverfolgung erstellen: ja

Durchgesickerter SOCKET-Handle entdeckt

Wahrscheinliche Ursache

Es wurde festgestellt, dass ein offenes SOCKET von einem Winsock-Basisdienstanbieter durchgesickert war. Dies deutet im Allgemeinen auf einen Fehler in einem bestimmten LSP hin, der zwischen der Anwendung und Winsock geschaltet ist. Zur Fehlersuche bei diesem Stopp geben Sie den Stack-Trace des Threads aus, der das SOCKET-Handle geöffnet hat, indem Sie den Befehl dps im Debugger auf den zweiten Parameter dieses Prüfstopps anwenden.

Von Application Verifier angezeigte Informationen
  • Parameter 1 - SOCKET-Handle wird durchgelassen
  • Parameter 2 - Initialisierungs-Stapelverfolgung. Verwenden Sie dps, um den Stack zu löschen, wenn er nicht NULL ist
  • Parameter 3 - Thread-ID des Threads, der den Griff geöffnet hat
  • Parameter 4 - Nicht verwendet

Weitere Informationen
  • Testschicht: Vernetzung
  • Stop ID: WSP_LEAKED_SOCKET_HANDLE
  • Stoppcode: 0000e006
  • Schweregrad: Fehler
  • Einmaliger Fehler: nein
  • Fehlerbericht: Pause
  • Protokollierung in Datei: ja
  • Rückverfolgung erstellen: ja

Eine Winsock-API wurde vor einem erfolgreichen WSAStartup() oder nach einem ausgleichenden erfolgreichen WSACleanup()-Aufruf aufgerufen

Wahrscheinliche Ursache

Vor einem erfolgreichen WSAStarup()-Aufruf oder nach einem ausgleichenden erfolgreichen WSACleanup()-Aufruf wurde ein Aufruf an eine Netzwerk-API durchgeführt. WSAStartup muss von jeder Komponente, die Winsock verwendet, einen Referenzzähler bereitstellen, um die Initialisierung für die Verwendung der Winsock-API zu gewährleisten. Ein unausgewogenes WSAStartup/WSACleanup-Aufrufmuster durch eine Komponente kann zu undefiniertem Verhalten führen, da dies die Winsock-Schicht veranlassen kann, Bibliotheken zu entladen und Ressourcen freizugeben, während sie noch verwendet werden.

Von Application Verifier angezeigte Informationen
  • Parameter 1 - Letzter erfolgreicher WSAStartup-Aufruf durch diesen Aufrufer. Verwenden Sie dps, um den Stack zu löschen, wenn er nicht NULL ist
  • Parameter 2 - Letzter erfolgreicher WSACleanup-Aufruf durch diesen Aufrufer. Verwenden Sie dps, um den Stack zu löschen, wenn er nicht NULL ist
  • Parameter 3 - Letzter erfolgreicher WSAStartup-Aufruf in diesem Prozess. Verwenden Sie dps, um den Stack zu löschen, wenn er nicht NULL ist
  • Parameter 4 - Letzter erfolgreicher WSACleanup-Aufruf in diesem Prozess. Verwenden Sie dps, um den Stack zu löschen, wenn er nicht NULL ist

Weitere Informationen
  • Testschicht: Vernetzung
  • Stopp-ID: WSA_NOT_INITIALIZED
  • Stoppcode: 0000e007
  • Schweregrad: Fehler
  • Einmaliger Fehler: nein
  • Fehlerbericht: Pause
  • Protokollierung in Datei: ja
  • Rückverfolgung erstellen: ja

Netzwerk-API, die vor einem erfolgreichen WSPStartup() oder nach einem ausgleichenden erfolgreichen WSPCleanup()-Aufruf aufgerufen wird

Wahrscheinliche Ursache

Vor einem erfolgreichen WSPStarup()-Aufruf oder nach einem ausgleichenden erfolgreichen WSPCleanup()-Aufruf wurde ein Aufruf an die API eines Winsock-Dienstanbieters vorgenommen. Dies deutet im Allgemeinen auf einen Fehler bei einem bestimmten Winsock Layered Service Provider (LSP) hin, der zwischen der Anwendung und Winsock geschaltet ist. WSPStartup muss von jedem LSP, der Winsock verwendet, eine Referenzzählung bereitstellen, um die Initialisierung für die Verwendung der API des Winsock-Dienstanbieters zu gewährleisten. Ein unausgewogenes WSPStartup/WSPCleanup-Aufrufmuster durch einen LSP kann zu undefiniertem Verhalten führen, da dies die Winsock-Schicht veranlassen kann, Bibliotheken zu entladen und Ressourcen freizugeben, während sie noch verwendet werden.

Von Application Verifier angezeigte Informationen
  • Parameter 1 - Letzter erfolgreicher WSPStartup-Aufruf durch diesen Aufrufer. Verwenden Sie dps, um den Stack zu löschen, wenn er nicht NULL ist
  • Parameter 2 - Letzter erfolgreicher WSPCleanup-Aufruf durch diesen Aufrufer. Verwenden Sie dps, um den Stack zu löschen, wenn er nicht NULL ist
  • Parameter 3 - Letzter erfolgreicher WSPStartup-Aufruf in diesem Prozess. Verwenden Sie dps, um den Stack zu löschen, wenn er nicht NULL ist
  • Parameter 4 - Letzter erfolgreicher WSPCleanup-Aufruf in diesem Prozess. Verwenden Sie dps, um den Stack zu löschen, wenn er nicht NULL ist

Weitere Informationen
  • Testschicht: Vernetzung
  • Stopp-ID: WSP_NOT_INITIALIZED
  • Stoppcode: 0000e008
  • Schweregrad: Fehler
  • Einmaliger Fehler: nein
  • Fehlerbericht: Pause
  • Protokollierung in Datei: ja
  • Rückverfolgung erstellen: ja

Ein Winsock-Namensdienstanbieter-API wurde vor einem erfolgreichen NSPStartup()-Aufruf oder nach einem ausgleichenden erfolgreichen NSPCleanup()-Aufruf aufgerufen

Wahrscheinliche Ursache

Ein Aufruf an eine Winsock-Namensdienstanbieter-API erfolgte vor einem erfolgreichen NSPStarup()-Aufruf oder nach einem ausgleichenden erfolgreichen NSPCleanup()-Aufruf. Dies deutet im Allgemeinen auf einen Fehler bei einem bestimmten Winsock-Namensdienstanbieter (NSP) hin, der zwischen der Anwendung und Winsock geschaltet ist. NSPStartup muss von jedem NSP, der Winsock verwendet, eine Referenzzählung bereitstellen, um die Initialisierung für die Verwendung der API des Winsock-Namensdienstanbieters zu gewährleisten. Ein unausgewogenes NSPStartup/NSPCleanup-Aufrufmuster durch einen NSP kann zu undefiniertem Verhalten führen, da dies die Winsock-Schicht veranlassen kann, Bibliotheken zu entladen und Ressourcen freizugeben, während sie noch verwendet werden.

Von Application Verifier angezeigte Informationen
  • Parameter 1 - Letzter erfolgreicher NSPStartup-Aufruf durch diesen Anrufer. Verwenden Sie dps, um den Stack zu löschen, wenn er nicht NULL ist
  • Parameter 2 - Letzter erfolgreicher NSPCleanup-Aufruf durch diesen Aufrufer. Verwenden Sie dps, um den Stack zu löschen, wenn er nicht NULL ist
  • Parameter 3 - Letzter erfolgreicher NSPStartup-Aufruf in diesem Prozess. Verwenden Sie dps, um den Stack zu löschen, wenn er nicht NULL ist
  • Parameter 4 - Letzter erfolgreicher NSPCleanup-Aufruf in diesem Prozess. Verwenden Sie dps, um den Stack zu löschen, wenn er nicht NULL ist

Weitere Informationen
  • Testschicht: Vernetzung
  • Stopp-ID: NSP_NOT_INITIALIZED
  • Stoppcode: 0000e009
  • Schweregrad: Fehler
  • Einmaliger Fehler: nein
  • Fehlerbericht: Pause
  • Protokollierung in Datei: ja
  • Rückverfolgung erstellen: ja

Verwendung eines ungültigen Zeigers für eine Winsock-Erweiterungsfunktion erkannt

Wahrscheinliche Ursache

Die Funktionen der Microsoft Winsock-Erweiterung sind nur aufrufbar, indem der Funktionszeigerwert zur Laufzeit von Winsock abgefragt wird. Die Winsock-Laufzeitumgebung wurde entladen, seit dieser Funktionszeiger zurückgegeben wurde. Der Aufrufer hat wahrscheinlich eine Kopie des Funktionszeigers nach dem Aufruf von WSACleanup behalten und versucht, sie wiederzuverwenden.

Von Application Verifier angezeigte Informationen
  • Parameter 1 - Letzter Aufruf, um einen Winsock-Funktionszeiger zu erhalten. Verwenden Sie dps, um den Stack zu löschen, wenn er nicht NULL ist
  • Parameter 2 - Letzter Aufruf, der mswsock entlädt und die Funktionszeiger ungültig macht. Verwenden Sie dps, um den Stack zu löschen, wenn er nicht NULL ist
  • Parameter 3 - Nicht verwendet.
  • Parameter 4 - Nicht verwendet.

Weitere Informationen
  • Testschicht: Vernetzung
  • Stopp-ID: INVALID_FUNCTION_POINTER_DETECTED
  • Stoppcode: 0000e00A
  • Schweregrad: Fehler
  • Einmaliger Fehler: nein
  • Fehlerbericht: Pause
  • Protokollierung in Datei: ja
  • Rückverfolgung erstellen: ja

WSACleanup brach ab und schloss bestehende SOCKET-Handles unterhalb des Codes, der diese SOCKETs besaß

Wahrscheinliche Ursache

WSACleanup wurde aufgerufen und dekrementierte den Winsock-Referenzzähler auf 0, während in diesem Prozess offene SOCKET-Handles existierten. Winsock schließt alle geöffneten SOCKET-Handles, wenn der Referenzzähler Null erreicht. Dies ist typischerweise ein Fehler bei demjenigen, der die Anzahl der Winsock-Referenzen über WSACleanup zu oft dekrementiert (unausgewogen mit WSAStartup), oder die SOCKET-Handles wurden vom Aufrufer nicht mehr korrekt verfolgt (undicht). Geben Sie im Debugger k ein, um zu sehen, wer gerade WSACleanup aufruft und die Anzahl der Winsock-Referenzen auf 0 setzt.

Von Application Verifier angezeigte Informationen
  • Parameter 1 - Anzahl der Sockets, die ausstehend waren
  • Parameter 2 - Nicht verwendet.
  • Parameter 3 - Nicht verwendet.
  • Parameter 4 - Nicht verwendet.

Weitere Informationen
  • Testschicht: Vernetzung
  • Stopp-ID: WSA_SOCKETS_ABORTED
  • Stoppcode: 0000e00B
  • Schweregrad: Fehler
  • Einmaliger Fehler: nein
  • Fehlerbericht: Pause
  • Protokollierung in Datei: ja
  • Rückverfolgung erstellen: ja

WSPCleanup brach ab und schloss bestehende Service-Provider-SOCKET-Handles unterhalb des Codes, der diese SOCKETs besaß

Wahrscheinliche Ursache

WSPCleanup wurde von einem Layered Service Provider (LSP) aufgerufen, der die Anzahl der Winsock-Referenzen auf 0 reduzierte, während in diesem Prozess offene SOCKET-Handles existierten. Winsock schließt alle geöffneten SOCKET-Handles, wenn der Referenzzähler Null erreicht. Dies ist typischerweise ein Fehler im LSP, der die Anzahl der Winsock-Referenzen über WSPCleanup zu oft dekrementiert (unausgeglichen mit WSPStartup), oder die SOCKET-Handles wurden vom Aufrufer nicht mehr korrekt verfolgt (undicht). Geben Sie im Debugger k ein, um zu sehen, wer gerade WSPCleanup aufruft und die Anzahl der Winsock-Referenzen auf 0 setzt.

Von Application Verifier angezeigte Informationen
  • Parameter 1 - Anzahl der ausstehenden Sockets des Dienstanbieters
  • Parameter 2 - Nicht verwendet.
  • Parameter 3 - Nicht verwendet.
  • Parameter 4 - Nicht verwendet.

Weitere Informationen
  • Testschicht: Vernetzung
  • Stopp-ID: WSP_SOCKETS_ABORTED
  • Stoppcode: 0000e00C
  • Schweregrad: Fehler
  • Einmaliger Fehler: nein
  • Fehlerbericht: Keine
  • Protokollierung in Datei: ja
  • Rückverfolgung erstellen: ja

Der unmittelbare Rückgabewert, oder GetLastError, ist für den aktuellen Winsock-Aufruf ungültig. Dies deutet im Allgemeinen auf einen Fehler bei einem Dienstanbieter hin

Wahrscheinliche Ursache

Der zurückgegebene Wert bzw. der aktuelle Wert in GetLastError entspricht nicht der angegebenen Winsock-2-Spezifikation. Dies deutet im Allgemeinen auf einen Fehler in einem Layered Service Provider (LSP) hin – eine DLL, die zwischen der Anwendung und Winsock geschaltet ist. In diesen Fällen hat ein LSP den Winsock-API-Vertrag gebrochen und gibt einen falschen Wert an den Aufrufer zurück. Verwenden Sie ln auf Parameter 3 im Debugger, um die Funktion in der DLL zu finden, die den falschen Rückgabewert liefert. Sehen Sie sich die Parameter 1 und 2 an, um festzustellen, welcher Wert in Bezug auf den Winsock-Aufruf falsch war. Sehen Sie sich Parameter 4 an, wenn der Aufruf eine Winsock-Sende- oder -Empfangsfunktion war, um die tatsächliche Anzahl der Bytes zu sehen, die zum Senden oder Empfangen angefordert wurden. Es ist nicht zulässig, dass die zurückgegebene Anzahl von Bytes größer ist als die Anzahl der angeforderten zu sendenden oder zu empfangenden Bytes.

Von Application Verifier angezeigte Informationen
  • Parameter 1 - Rückgabewert
  • Parameter 2 - GetLastError
  • Parameter 3 - Funktionszeiger auf den nächsten Dienstanbieter. Verwenden Sie ln, um zu sehen, wer gerade diesen Wert zurückgegeben hat
  • Parameter 4 - Für das Senden/Empfangen von Daten, die tatsächliche Anzahl der an die API gesendeten Bytes

Weitere Informationen
  • Testschicht: Vernetzung
  • Stopp-ID: WSA_RETURN_INVALID
  • Stoppcode: 0000e00D
  • Schweregrad: Fehler
  • Einmaliger Fehler: nein
  • Fehlerbericht: Pause
  • Protokollierung in Datei: ja
  • Rückverfolgung erstellen: ja

Der Rückgabewert, oder lpError, ist für den aktuellen Winsock-Aufruf ungültig. Dies deutet im Allgemeinen auf einen Fehler in einem Basisdienstanbieter oder im Netzwerkstapel hin

Wahrscheinliche Ursache

Der zurückgegebene Wert oder der aktuelle Wert in lpError entspricht nicht der angegebenen Winsock-2-Spezifikation. Dies deutet im Allgemeinen auf einen Fehler in einem geladenen Basisdienstanbieter (in der Regel mswsock.dll) oder im Netzwerkstapel hin. Verwenden Sie ln auf Parameter 3 im Debugger, um die Funktion in der DLL zu finden, die den falschen Rückgabewert liefert. Sehen Sie sich die Parameter 1 und 2 an, um festzustellen, welcher Wert in Bezug auf den Winsock-Aufruf falsch war. Sehen Sie sich Parameter 4 an, wenn der Aufruf eine Winsock-Sende- oder -Empfangsfunktion war, um die tatsächliche Anzahl der Bytes zu sehen, die zum Senden oder Empfangen angefordert wurden. Es ist nicht zulässig, dass die zurückgegebene Anzahl von Bytes größer ist als die Anzahl der angeforderten zu sendenden oder zu empfangenden Bytes.

Von Application Verifier angezeigte Informationen
  • Parameter 1 - Rückgabewert
  • Parameter 2 - GetLastError
  • Parameter 3 - Funktionszeiger auf den nächsten Dienstanbieter. Verwenden Sie ln, um zu sehen, wer gerade diesen Wert zurückgegeben hat
  • Parameter 4 - Für das Senden/Empfangen von Daten, die tatsächliche Anzahl der an die API gesendeten Bytes

Weitere Informationen
  • Testschicht: Vernetzung
  • Stopp-ID: WSP_RETURN_INVALID
  • Stoppcode: 0000e00E
  • Schweregrad: Fehler
  • Einmaliger Fehler: nein
  • Fehlerbericht: Pause
  • Protokollierung in Datei: ja
  • Rückverfolgung erstellen: ja

Weitere Informationen

Anwendungsüberprüfung – Stoppcodes und Definitionen

Application Verifier – Überblick

Anwendungsüberprüfung – Funktionen

Anwendungsüberprüfung – Testen von Anwendungen

Anwendungsüberprüfung – Tests innerhalb der Anwendungsüberprüfung

Anwendungsüberprüfung – Debuggen von Stopps der Anwendungsüberprüfung

Anwendungsüberprüfung – Häufig gestellte Fragen