Je reçois des plantages profonds dans wininet.dll. Il s'est écrasé en essayant de lire l'emplacement de la mémoire zéro dans HTTP_REQUEST_HANDLE_OBJECT::ReleaseConnection
Cause de plantages apparemment aléatoires dans wininet.dll?
Est-ce un bug dans la DLL réelle et non causée par une mauvaise utilisation? !
wininet HTTP_REQUEST_HANDLE_OBJECT :: ReleaseConnection + 0x60
wininet HTTP_REQUEST_HANDLE_OBJECT :: CloseConnection + 0x84
wininet HTTP_REQUEST_HANDLE_OBJECT :: ReadData_Fsm + 0x5e8
wininet CFsm_ReadData :: RunSM + 0x2e
wininet MAFC!: :! Run + 0x39
wininet DoFsm + 0x25
wininet HTTP_REQUEST_HANDLE_OBJECT :: ReadData + 0x38
wininet HTTP_REQUEST_HANDLE_OBJECT :: HttpReadData_Fsm + 0x43
wininet! CFsm_HttpReadData :: RunSM + 0x2e
wininet! MAFC :: Run + 0x39
wininet! DoFsm + 0x25
wininet! HttpReadData + 0x67
wininet! ReadFile_Fsm + 0x2D
wininet! CFsm_ReadFile :: RunSM + 0x2B
wininet! MAFC :: Run + 0x39
wininet! DoFsm + 0x25
wininet! InternetReadFile + 0x3ca
Le contexte est que je suis en train de télécharger un fichier. J'appelle
InternetReadFile (hFichier, lpBuffer, dwNumberOfBytesToRead, lpdwNumberOfBytesRead);
La poignée hFile HINTERNET semble bien (valeur 0x00cc0024 qui semble légitime) le dwNumberOfBytesToRead est 20000.
Ma taille du tampon est 131000 ce qui est bien aussi.
Le truc c'est que mon code fonctionne 99.9999% du temps!
Vous transmettez probablement des données non valides. Quel appel de votre programme provoque le crash? Veuillez coller l'appel et le code environnant pertinent. – Thomas
Vous devrez fournir * beaucoup * plus de contexte, c'est-à-dire un exemple de la manière dont vous appelez WinInet et qui déclenche l'erreur ** et ** du niveau d'O/S et du Service Pack que vous testez.Étant donné que c'est une partie essentielle du système d'exploitation Windows, il est fort probable que la faute vous incombe (bien qu'il y ait toujours une chance que vous ayez trouvé un bogue inconnu dans Windows =) – Rob
J'essaie de télécharger un fichier. J'appelle InternetReadFile (hFichier, lpBuffer, dwNumberOfBytesToRead, lpdwNumberOfBytesRead); La poignée de HFile HINTERNET semble bien (la valeur est 0x00cc0024 qui semble légitime) le dwNumberOfBytesToRead est 20000. – crazyx