Partager via


Vérificateur d’application - Codes d’arrêt - Mise en réseau

Les codes d’arrêt suivants sont inclus dans cet ensemble de tests.

Appel à une API réseau illégale depuis DllMain

Cause probable

Un appel a été fait à une API réseau qui ne prend pas en charge les appels depuis DllMain. De nombreuses API Win32, pas seulement les API réseau Win32, ne peuvent pas être appelées depuis DllMain. Pour plus d’informations, lisez la documentation sur DllMain dans la bibliothèque MSDN. Pour identifier la routine qui a fait l’appel, affichez la trace de la pile actuelle en utilisant la commande ’k’ dans le débogueur.

Informations affichées par Application Verifier
  • Paramètre 1 - Fonction réseau appelée depuis DllMain
  • Paramètre 2 - Nom de la Dll faisant l’appel invalide si non NULL
  • Paramètre 3 - Non utilisé
  • Paramètre 4 - Non utilisé

Informations supplémentaires
  • Couche de test : Mise en réseau
  • ID d’arrêt : UNSUPPORTED_API_CALL_IN_DLLMAIN
  • Code d’arrêt : 0000e0000
  • Gravité :  Erreur
  • Erreur unique : non
  • Rapport d’erreur : Interruption
  • Journaliser dans un fichier : oui
  • Créer une rétroaction : oui

Tentative d’utilisation d’un SOCKET fermé

Cause probable

Un SOCKET a été utilisé après avoir été fermé. Pour identifier la routine qui a tenté d’utiliser le SOCKET fermé, affichez la trace de la pile actuelle en utilisant la commande « k » dans le débogueur. Pour afficher la trace de la pile de la routine qui a fermé le SOCKET, utilisez la commande dps avec le deuxième paramètre de l’arrêt.

Informations affichées par Application Verifier
  • Paramètre 1 - SOCKET en cours d’accès
  • Paramètre 2 - Trace de la pile de la fonction qui a fermé le SOCKET. Utilisez dps pour afficher la trace de la pile si non NULL
  • Paramètre 3 - Non utilisé
  • Paramètre 4 - Non utilisé

Informations supplémentaires
  • Couche de test : Mise en réseau
  • ID d’arrêt : WSA_SOCKET_ALREADY_CLOSED
  • Code d’arrêt : 0000e001
  • Gravité :  Erreur
  • Erreur unique : non
  • Rapport d’erreur : Interruption
  • Journaliser dans un fichier : oui
  • Créer une rétroaction : oui

Tentative d’utilisation d’un SOCKET inconnu

Cause probable

Une tentative a été faite pour utiliser une valeur inconnue pour un SOCKET qui n’a pas été créé par un appel à Winsock. Pour voir la trace de la pile de la routine qui a tenté cette action, utilisez la commande ’k’ dans le débogueur.

Informations affichées par Application Verifier
  • Paramètre 1 - SOCKET en cours d’accès
  • Paramètre 2 - Non utilisé
  • Paramètre 3 - Non utilisé
  • Paramètre 4 - Non utilisé

Informations supplémentaires
  • Couche de test : Mise en réseau
  • ID d’arrêt : WSA_INVALID_SOCKET_HANDLE
  • Code d’arrêt : 0000e002
  • Gravité :  Erreur
  • Erreur unique : non
  • Rapport d’erreur : Interruption
  • Journaliser dans un fichier : oui
  • Créer une rétroaction : oui

Détection d’une fuite de descripteur de SOCKET

Cause probable

Un SOCKET ouvert à partir d’un fournisseur de services de base Winsock a été détecté comme ayant fui d’une DLL en cours de déchargement. Pour résoudre ce problème, affichez la trace de la pile du thread qui a ouvert le descripteur de SOCKET en utilisant la commande dps dans le débogueur sur le deuxième paramètre de cet arrêt de vérificateur.

Informations affichées par Application Verifier
  • Paramètre 1 - Descripteur de SOCKET en fuite.
  • Paramètre 2 - Trace de la pile d’initialisation. Utilisez dps pour afficher la trace si non NULL
  • Paramètre 3 - ID du thread qui a ouvert le descripteur
  • Paramètre 4 - Non utilisé

Informations supplémentaires
  • Couche de test : Mise en réseau
  • ID d’arrêt : WSA_LEAKED_SOCKET_HANDLE
  • Code d’arrêt : 0000e003
  • Gravité :  Erreur
  • Erreur unique : non
  • Rapport d’erreur : Interruption
  • Journaliser dans un fichier : oui
  • Créer une rétroaction : oui

Tentative d’utilisation d’un SOCKET fermé

Cause probable

Un SOCKET d’un fournisseur de base Winsock a été utilisé après avoir été fermé. Cela indique généralement une faute dans un fournisseur de services en couches (un LSP - une DLL entre l’application et Winsock). Pour identifier la routine qui a tenté d’utiliser le SOCKET fermé, affichez la trace de la pile actuelle en utilisant la commande « k » dans le débogueur. Pour afficher la trace de la pile de la routine qui a fermé le SOCKET, utilisez la commande dps avec le deuxième paramètre de l’arrêt.

Informations affichées par Application Verifier
  • Paramètre 1 - SOCKET en cours d’accès.
  • Paramètre 2 - Trace de la pile de la fonction qui a fermé le SOCKET. Utilisez dps pour afficher la trace de la pile si non NULL
  • Paramètre 3 - Non utilisé
  • Paramètre 4 - Non utilisé

Informations supplémentaires
  • Couche de test : Mise en réseau
  • ID d’arrêt : WSP_SOCKET_ALREADY_CLOSED
  • Code d’arrêt : 0000e004
  • Gravité :  Erreur
  • Erreur unique : non
  • Rapport d’erreur : Interruption
  • Journaliser dans un fichier : oui
  • Créer une rétroaction : oui

Tentative d’utilisation d’un SOCKET inconnu

Cause probable

Une valeur de descripteur de SOCKET inconnue a été utilisée par un fournisseur de services en couches Winsock (LSP). Cela pointe généralement vers une faute dans un LSP spécifique intercalé entre l’application et Winsock. Pour identifier la routine qui a tenté d’utiliser le SOCKET inconnu, affichez la trace de la pile actuelle en utilisant la commande « k » dans le débogueur.

Informations affichées par Application Verifier
  • Paramètre 1 - SOCKET en cours d’accès
  • Paramètre 2 - Non utilisé
  • Paramètre 3 - Non utilisé
  • Paramètre 4 - Non utilisé

Informations supplémentaires
  • Couche de test : Mise en réseau
  • ID d’arrêt : WSP_INVALID_SOCKET_HANDLE
  • Code d’arrêt : 0000e005
  • Gravité :  Erreur
  • Erreur unique : non
  • Rapport d’erreur : Interruption
  • Journaliser dans un fichier : oui
  • Créer une rétroaction : oui

Détection d’une fuite de descripteur de SOCKET

Cause probable

Un SOCKET ouvert à partir d’un fournisseur de services de base Winsock a été détecté comme ayant fui. Cela pointe généralement vers une faute dans un LSP spécifique intercalé entre l’application et Winsock. Pour résoudre ce problème, affichez la trace de la pile du thread qui a ouvert le descripteur de SOCKET en utilisant la commande dps dans le débogueur sur le deuxième paramètre de cet arrêt de vérificateur.

Informations affichées par Application Verifier
  • Paramètre 1 - Descripteur de SOCKET en fuite.
  • Paramètre 2 - Trace de la pile d’initialisation. Utilisez dps pour afficher la trace si non NULL
  • Paramètre 3 - ID du thread qui a ouvert le descripteur
  • Paramètre 4 - Non utilisé

Informations supplémentaires
  • Couche de test : Mise en réseau
  • ID d’arrêt : WSP_LEAKED_SOCKET_HANDLE
  • Code d’arrêt : 0000e006
  • Gravité :  Erreur
  • Erreur unique : non
  • Rapport d’erreur : Interruption
  • Journaliser dans un fichier : oui
  • Créer une rétroaction : oui

Une API Winsock a été appelée avant un WSAStartup() réussi ou après un appel WSACleanup() réussi

Cause probable

Un appel a été fait à une API réseau avant un WSAStartup() réussi ou après un appel WSACleanup() réussi. WSAStartup est requis pour fournir un comptage de références par tout composant utilisant Winsock pour garantir l’initialisation de l’utilisation des API Winsock. Un modèle d’appel déséquilibré WSAStartup/WSACleanup par un composant peut entraîner un comportement indéfini, car cela peut entraîner le déchargement des bibliothèques Winsock et la libération des ressources tout en étant encore utilisées.

Informations affichées par Application Verifier
  • Paramètre 1 - Dernier appel réussi à WSAStartup par cet appelant Utilisez dps pour afficher la trace si non NULL
  • Paramètre 2 - Dernier appel réussi à WSACleanup par cet appelant Utilisez dps pour afficher la trace si non NULL
  • Paramètre 3 - Dernier appel réussi à WSAStartup par cet appelant Utilisez dps pour afficher la trace si non NULL
  • Paramètre 4 - Dernier appel réussi à WSACleanup par cet appelant Utilisez dps pour afficher la trace si non NULL

Informations supplémentaires
  • Couche de test : Mise en réseau
  • ID d’arrêt : WSA_NOT_INITIALIZED
  • Code d’arrêt : 0000e007
  • Gravité :  Erreur
  • Erreur unique : non
  • Rapport d’erreur : Interruption
  • Journaliser dans un fichier : oui
  • Créer une rétroaction : oui

Une API de mise en réseau a été appelée avant un WSPStartup() réussi ou après un appel WSPCleanup() réussi

Cause probable

Un appel a été fait à une API de fournisseur de services Winsock avant un WSPStartup() réussi ou après un appel WSPCleanup() réussi. Cela pointe généralement vers une faute dans un fournisseur de services en couches Winsock (LSP) intercalé entre l’application et Winsock. WSPStartup est requis pour fournir un comptage de références par tout LSP utilisant Winsock pour garantir l’initialisation de l’utilisation des API de fournisseur de services Winsock. Un modèle d’appel déséquilibré WSPStartup/WSPCleanup par un LSP peut entraîner un comportement indéfini, car cela peut entraîner le déchargement des bibliothèques Winsock et la libération des ressources tout en étant encore utilisées.

Informations affichées par Application Verifier
  • Paramètre 1 - Dernier appel réussi à WSPStartup par cet appelant Utilisez dps pour afficher la trace si non NULL
  • Paramètre 2 - Dernier appel réussi à WSPCleanup par cet appelant Utilisez dps pour afficher la trace si non NULL
  • Paramètre 3 - Dernier appel réussi à WSPStartup par cet appelant Utilisez dps pour afficher la trace si non NULL
  • Paramètre 4 - Dernier appel réussi à WSPCleanup par cet appelant Utilisez dps pour afficher la trace si non NULL

Informations supplémentaires
  • Couche de test : Mise en réseau
  • ID d’arrêt : WSP_NOT_INITIALIZED
  • Code d’arrêt : 0000e008
  • Gravité :  Erreur
  • Erreur unique : non
  • Rapport d’erreur : Interruption
  • Journaliser dans un fichier : oui
  • Créer une rétroaction : oui

Une API de fournisseur de services de nom Winsock a été appelée avant un NSPStartup() réussi ou après un appel NSPCleanup() réussi

Cause probable

Un appel a été fait à une API de fournisseur de services de nom Winsock avant un NSPStartup() réussi ou après un appel NSPCleanup() réussi. Cela pointe généralement vers une faute dans un fournisseur de services de nom Winsock (NSP) intercalé entre l’application et Winsock. NSPStartup est requis pour fournir un comptage de références par tout NSP utilisant Winsock pour garantir l’initialisation de l’utilisation des API de fournisseur de services de nom Winsock. Un modèle d’appel déséquilibré NSPStartup/NSPCleanup par un NSP peut entraîner un comportement indéfini, car cela peut entraîner le déchargement des bibliothèques Winsock et la libération des ressources tout en étant encore utilisées.

Informations affichées par Application Verifier
  • Paramètre 1 - Dernier appel réussi à NSPStartup par cet appelant Utilisez dps pour afficher la trace si non NULL
  • Paramètre 2 - Dernier appel réussi à NSPCleanup par cet appelant Utilisez dps pour afficher la trace si non NULL
  • Paramètre 3 - Dernier appel réussi à NSPStartup par cet appelant Utilisez dps pour afficher la trace si non NULL
  • Paramètre 4 - Dernier appel réussi à NSPCleanup par cet appelant Utilisez dps pour afficher la trace si non NULL

Informations supplémentaires
  • Couche de test : Mise en réseau
  • ID d’arrêt : NSP_NOT_INITIALIZED
  • Code d’arrêt : 0000e007
  • Gravité :  Erreur
  • Erreur unique : non
  • Rapport d’erreur : Interruption
  • Journaliser dans un fichier : oui
  • Créer une rétroaction : oui

Utilisation d’un pointeur de fonction d’extension Winsock invalide détectée

Cause probable

Les fonctions d’extension Microsoft Winsock ne peuvent être appelées qu’en interrogeant Winsock pour obtenir la valeur du pointeur de fonction au moment de l’exécution. Le runtime Winsock a été déchargé depuis que ce pointeur de fonction a été renvoyé. L’appelant a probablement conservé une copie du pointeur de fonction après avoir appelé WSACleanup et a tenté de le réutiliser.

Informations affichées par Application Verifier
  • Paramètre 1 - Dernier appel pour obtenir un pointeur de fonction Winsock Utilisez dps pour afficher la trace si non NULL
  • Paramètre 2 - Dernier appel ayant déchargé mswsock, invalidant les pointeurs de fonction Utilisez dps pour afficher la trace si non NULL
  • Paramètre 3 - Non utilisé.
  • Paramètre 4 - Non utilisé.

Informations supplémentaires
  • Couche de test : Mise en réseau
  • ID d’arrêt : INVALID_FUNCTION_POINTER_DETECTED
  • Code d’arrêt : 0000e00A
  • Gravité :  Erreur
  • Erreur unique : non
  • Rapport d’erreur : Interruption
  • Journaliser dans un fichier : oui
  • Créer une rétroaction : oui

WSACleanup a été appelé et a fermé les descripteurs de SOCKET existants sous le code qui possédait ces SOCKETs

Cause probable

WSACleanup a été appelé en décrémentant le comptage de références Winsock à 0 alors que des descripteurs de SOCKET ouverts existaient dans ce processus. Winsock ferme tous les descripteurs de SOCKET ouverts lorsque le comptage de références atteint zéro. Ceci est généralement un bug chez celui qui décrémente trop souvent le comptage de références Winsock via WSACleanup (déséquilibré avec WSAStartup), ou les descripteurs de SOCKET n’étaient plus correctement suivis par l’appelant (fuite). Tapez k dans le débogueur pour voir qui appelle actuellement WSACleanup en amenant le comptage de références Winsock à 0.

Informations affichées par Application Verifier
  • Paramètre 1 - Nombre de sockets en cours
  • Paramètre 2 - Non utilisé.
  • Paramètre 3 - Non utilisé.
  • Paramètre 4 - Non utilisé.

Informations supplémentaires
  • Couche de test : Mise en réseau
  • ID d’arrêt : WSA_SOCKETS_ABORTED
  • Code d’arrêt : 0000e00B
  • Gravité :  Erreur
  • Erreur unique : non
  • Rapport d’erreur : Interruption
  • Journaliser dans un fichier : oui
  • Créer une rétroaction : oui

WSPCleanup a été appelé et a fermé les descripteurs de SOCKET des fournisseurs de services sous le code qui possédait ces SOCKETs

Cause probable

WSPCleanup a été appelé par un fournisseur de services en couches (LSP) en décrémentant le comptage de références Winsock à 0 alors que des descripteurs de SOCKET ouverts existaient dans ce processus. Winsock ferme tous les descripteurs de SOCKET ouverts lorsque le comptage de références atteint zéro. Ceci est généralement un bug chez le LSP qui décrémente trop souvent le comptage de références Winsock via WSPCleanup (déséquilibré avec WSPStartup), ou les descripteurs de SOCKET n’étaient plus correctement suivis par l’appelant (fuite). Tapez k dans le débogueur pour voir qui appelle actuellement WSPCleanup en amenant le comptage de références Winsock à 0.

Informations affichées par Application Verifier
  • Paramètre 1 - Nombre de sockets du fournisseur de services en cours
  • Paramètre 2 - Non utilisé.
  • Paramètre 3 - Non utilisé.
  • Paramètre 4 - Non utilisé.

Informations supplémentaires
  • Couche de test : Mise en réseau
  • ID d’arrêt : WSP_SOCKETS_ABORTED
  • Code d’arrêt : 0000e00C
  • Gravité :  Erreur
  • Erreur unique : non
  • Rapport d’erreur : Aucun
  • Journaliser dans un fichier : oui
  • Créer une rétroaction : oui

La valeur de retour immédiate, ou GetLastError, est invalide pour l’appel Winsock actuel. Cela pointe généralement vers une faute dans un fournisseur de services

Cause probable

La valeur qui est renvoyée, ou la valeur actuelle dans GetLastError, ne suit pas la spécification Winsock 2. Cela pointe généralement vers un bug dans un fournisseur de services en couches (LSP) - une DLL intercalée entre l’application et Winsock. Dans ces cas, un LSP a enfreint le contrat de l’API Winsock et renvoie une valeur erronée à l’appelant. Utilisez ln sur le paramètre 3 dans le débogueur pour trouver la fonction dans la DLL qui a renvoyé le code de retour incorrect. Consultez les paramètres 1 et 2 pour voir quelle était la valeur incorrecte par rapport à l’appel Winsock effectué. Consultez le paramètre 4 si l’appel était destiné à toute fonction d’envoi ou de réception Winsock pour voir le nombre réel d’octets demandés à être envoyés ou reçus. Il est invalide que le nombre d’octets renvoyés soit supérieur au nombre d’octets demandés à être envoyés ou reçus.

Informations affichées par Application Verifier
  • Paramètre 1 - Valeur de retour
  • Paramètre 2 - GetLastError
  • Paramètre 3 - Pointeur de fonction vers le prochain fournisseur de services. Utilisez ln pour voir qui vient de renvoyer cette valeur
  • Paramètre 4 - Pour l’envoi/réception de données, le nombre réel d’octets postés à l’API

Informations supplémentaires
  • Couche de test : Mise en réseau
  • ID d’arrêt : WSA_RETURN_INVALID
  • Code d’arrêt : 0000e00D
  • Gravité :  Erreur
  • Erreur unique : non
  • Rapport d’erreur : Interruption
  • Journaliser dans un fichier : oui
  • Créer une rétroaction : oui

La valeur de retour, ou lpError, est invalide pour l’appel Winsock actuel. Cela pointe généralement vers une faute dans un fournisseur de services de base ou dans la pile réseau

Cause probable

La valeur qui est renvoyée, ou la valeur actuelle dans lpError, ne suit pas la spécification Winsock 2. Cela pointe généralement vers un bug dans un fournisseur de services de base chargé (généralement mswsock.dll), ou dans la pile réseau. Utilisez ln sur le paramètre 3 dans le débogueur pour trouver la fonction dans la DLL qui a renvoyé le code de retour incorrect. Consultez les paramètres 1 et 2 pour voir quelle était la valeur incorrecte par rapport à l’appel Winsock effectué. Consultez le paramètre 4 si l’appel était destiné à toute fonction d’envoi ou de réception Winsock pour voir le nombre réel d’octets demandés à être envoyés ou reçus. Il est invalide que le nombre d’octets renvoyés soit supérieur au nombre d’octets demandés à être envoyés ou reçus.

Informations affichées par Application Verifier
  • Paramètre 1 - Valeur de retour
  • Paramètre 2 - GetLastError
  • Paramètre 3 - Pointeur de fonction vers le prochain fournisseur de services. Utilisez ln pour voir qui vient de renvoyer cette valeur
  • Paramètre 4 - Pour l’envoi/réception de données, le nombre réel d’octets postés à l’API

Informations supplémentaires
  • Couche de test : Mise en réseau
  • ID d’arrêt : WSP_RETURN_INVALID
  • Code d’arrêt : 0000e00E
  • Gravité :  Erreur
  • Erreur unique : non
  • Rapport d’erreur : Interruption
  • Journaliser dans un fichier : oui
  • Créer une rétroaction : oui

Voir aussi

Vérificateur d’application - Codes d'arrêt et définitions

Application Verifier : Vue d’ensemble

Vérificateur d’application - Fonctionnalités

Vérificateur d’application - Test d’applications

Vérificateur d’application - Tests dans Application Verifier

Vérificateur d’application - Débogage des arrêts du vérificateur d’application

Vérificateur d’application - Forum aux questions