Hi Ich habe derzeit ein großes Problem mit einen selber geschriebenen Treiber. Der Treiber empfängt über das TDI Interface UDP Pakete von der Netzwerkkarte und kommuniziert auch mit einen anderen ebenfalls selbergeschriebenen Treiber über IRPs. Nun läuft das gesamte System relativ stabil aber nach einer ZEitspanne bekomme ich plötzlich einen BlueScreen von einen der beiden Treiber mit denen ich kommuniziere und als Fehler kommt immer: READ_ADDRESS: unable to get nt!MmSpecialPoolStart unable to get nt!MmSpecialPoolEnd unable to get nt!MmPoolCodeStart unable to get nt!MmPoolCodeEnd In 9 von 10 Fällen kommt der BlueScreen von der Netzwerkkarte. Daher meine Frage ob jemand von auch eine Idee hat wo das Problem liegen könnte. Kann es sein das mein Treiber den beiden anderen den Speicher wegnimmt?! MFG Gast
Zwieblum kannst du getrost ignorieren, der stänkert immer nur gegen Windows. Kann es sein, dass du diesen Kernel SpinLock, der nur ein einziges Mal im Kern vorhanden ist, nimmst, aber ihn nicht richtig anforderst? Wir hatten sowas mal, da wurde der Spinlock einfach gekrallt, obwohl ihn gerade andere Treiber innehatten....endete im BlueScreen, mal von der NIC, mal von der Maus usw. Je nachdem, wer gerade dran war.
Der Fehler kann alles Mögliche sein. Sinnvoller wäre es, wenn du den Bluescreen beschreibst (Fehlercode und so weiter).
>Nein der Treiber läuft auf windows server 2003. Warum kommst du auf >win95? weil in derinem posting das betriebsystem fehlt, deshalb.
Hi Also ich forder in meinen Treiber keinen SpinLock an. Arbeite nur mit events und semaphoren zum synchronisieren der einzelnen threads. Habe folgenden memdump: ADDITIONAL_DEBUG_TEXT: Use '!findthebuild' command to search for the target build information. If the build information is available, run '!findthebuild -s ; .reload' to set symbol path and load symbols. MODULE_NAME: l151x86 FAULTING_MODULE: 80800000 nt DEBUG_FLR_IMAGE_TIMESTAMP: 4729f738 READ_ADDRESS: unable to get nt!MmSpecialPoolStart unable to get nt!MmSpecialPoolEnd unable to get nt!MmPoolCodeStart unable to get nt!MmPoolCodeEnd 56734921 CURRENT_IRQL: 0 FAULTING_IP: +152952f00b4dfe0 56734921 ?? ??? DEFAULT_BUCKET_ID: DRIVER_FAULT BUGCHECK_STR: 0xD1 LAST_CONTROL_TRANSFER: from 56734921 to 8088c993 FAILED_INSTRUCTION_ADDRESS: +152952f00b4dfe0 56734921 ?? ??? STACK_TEXT: WARNING: Stack unwind information not available. Following frames may be wrong. 8089a390 56734921 badb0d00 b805fddc 80a60456 nt!Kei386EoiHelper+0x28d3 8089a43c 8081e123 00000000 8a3318b0 83c50904 0x56734921 8089a46c b9860b41 b989fd40 00002b2a 8a3f77b8 nt!IoCancelIrp+0x149 8089a484 b9862e38 8a3318b0 00000000 00000000 tcpip!IPRcvComplete+0x5ea 8089a4d0 b986376a 8a3f77b8 83d40f94 00000000 tcpip!IPGetAddrType+0xbbd 8089a508 b986261e 89e33ca0 00d38b00 00000000 tcpip!IPGetAddrType+0x14ef 8089a52c f72251f9 89e32570 83d38b00 00000000 tcpip!IPGetAddrType+0x3a3 8089a550 f76abafd 8a3e4ab0 83d38b00 00000000 NDIS+0x201f9 8089a574 f76ae281 89f83720 8a3e4ab0 00000000 l151x86+0x4afd 8089a590 f7229466 89f83008 ffdffa40 89f83404 l151x86+0x7281 8089a5a8 80832110 89f83404 89f833f0 00000000 NDIS+0x24466 8089a600 8088de4f 00000000 0000000e 00000000 nt!ZwYieldExecution+0x248c 8089db40 00000000 8089db48 8089db48 8089db50 nt!KiDispatchInterrupt+0x32f STACK_COMMAND: kb FOLLOWUP_IP: l151x86+4afd f76abafd 8b4d08 mov ecx,dword ptr [ebp+8] SYMBOL_STACK_INDEX: 8 SYMBOL_NAME: l151x86+4afd FOLLOWUP_NAME: MachineOwner IMAGE_NAME: l151x86.sys BUCKET_ID: WRONG_SYMBOLS Followup: MachineOwner --------- Aber ich gehe stark davon aus das ich den Fehler verursache weil das System ohne meinen Treiber normal läuft. Gast
da steht ja eh schon dein problem: READ_ADDRESS: unable to get nt!MmSpecialPoolStart unable to get nt!MmSpecialPoolEnd unable to get nt!MmPoolCodeStart unable to get nt!MmPoolCodeEnd im kontext deines treibers existieren diese funtionen nicht.
Hi WIe genau meinst du das? Wenn es diese Funktion nicht geben sollte würde er doch gleich am Anfang abstürzen oder? Er arbeitet allerdings 1 bis 2 Stunden ohne Probleme und plötzlich stürzt er ab. Gast
nicht unbedingt. wenn am anfang die libs verfügbar sind, aber nach einiger zeit wieder entladen werden, weil der refcount auf 0 geht, dann ist nach einiger zeit der zugriff nicht mehr möglich. aber das ist kaffeesudleserei. man bräuchte hier einen calltrace über die ganze laufzeit des treibers und vernünftige debuginfos.
Hi Das große Problem dabei ist das der Absturz vom Treiber der Netzwerkkarte kommt und nicht von meinen Treiber. Hast du einen Vorschlag wie ich an vernünftige Debugmeldungen bzw Calltraces komme? Gast
nein, keine idee. aufgrund kleiner unzulänglichkeiten wie dieser hab' ich mich ich mich samt firma von m$ getrennt.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.