Fehlerprüfung 0xC4: DRIVER_VERIFIER_DETECTED_VIOLATION
Die DRIVER_VERIFIER_DETECTED_VIOLATION-Fehlerüberprüfung weist den Wert 0x000000C4 auf. Dies ist der allgemeine Fehlerüberprüfungscode für schwerwiegende Fehler, die von driver verifier gefunden wurden. Weitere Informationen finden Sie unter Behandeln einer Fehlerüberprüfung, wenn die Treiberüberprüfung aktiviert ist.
Wichtig
Dieser Artikel richtet sich an Programmierer. Wenn Sie ein Kunde sind, der während der Verwendung Ihres Computers einen Bluescreen-Fehlercode erhalten hat, finden Sie weitere Informationen unter Behandeln von Bluescreenfehlern.
DRIVER_VERIFIER_DETECTED_VIOLATION Parameter
Parameter 1 identifiziert den Typ des Verstoßes. Die Bedeutung der verbleibenden Parameter variiert mit dem Wert von Parameter 1. Die Parameterwerte werden in der folgenden Tabelle beschrieben.
Hinweis Wenn Sie Probleme beim Anzeigen aller fünf Spalten in dieser Tabelle haben, versuchen Sie Folgendes:
- Erweitern Sie das Browserfenster auf die vollständige Größe.
- Platzieren Sie den Cursor in der Tabelle, und verwenden Sie die Pfeiltasten, um nach links und rechts zu scrollen.
0x00 zu 0x70
Parameter 1 | Parameter 2 | Parameter 3 | Parameter 4 | Fehlerursache |
---|---|---|---|---|
0x00 | Aktuelle IRQL | Pooltyp | Anzahl von Bytes | Der Treiber hat eine Null-Byte-Poolzuordnung angefordert. |
0x01 | Aktuelle IRQL | Pooltyp | Größe der Zuordnung in Byte | Der Treiber hat versucht, ausgelagerten Arbeitsspeicher mit IRQL-APC_LEVEL > zuzuweisen. |
0x02 | Aktuelle IRQL | Pooltyp | Größe der Zuordnung in Byte | Der Treiber hat versucht, nicht auslagerten Arbeitsspeicher mit IRQL-DISPATCH_LEVEL > zuzuweisen. |
0x03 | Der Aufrufer versucht, mehr als eine Seite des erfolgreichen Pools zuzuordnen, aber eine Seite ist das maximum, das von dieser API zulässig ist. | |||
0x10 | Ungültige Adresse | 0 | 0 | Der Treiber hat versucht, eine Adresse freizugeben, die nicht von einem Zuordnungsaufruf zurückgegeben wurde. |
0x11 | Aktuelle IRQL | Pooltyp | Adresse des Pools | Der Treiber hat versucht, den ausgelagerten Pool mit IRQL-APC_LEVEL > freizusetzen. |
0x12 | Aktuelle IRQL | Pooltyp | Adresse des Pools | Der Treiber hat versucht, einen nicht auslagerten Pool mit IRQL-DISPATCH_LEVEL > freizusetzen. |
0x13 oder 0x14 | Reserviert | Zeiger auf den Poolheader | Inhalt des Poolheaders | Der Treiber hat versucht, den bereits freigegebenen Speicherpool freizugeben. |
0x15 | Timereintrag | Pooltyp | Pooladresse, die freigegeben wird | Der Pool, den der Aufrufer freigeben möchte, enthält einen aktiven Timer. |
0x16 | Reserviert | Pooladresse | 0 | Der Treiber hat versucht, den Pool an einer ungültigen Adresse freizugeben, oder der Treiber hat ungültige Parameter an eine Speicherroutine übergeben. |
0X17 | Ressourceneintrag | Pooltyp | Pooladresse, die freigegeben wird | Der Pool, den der Aufrufer freigeben möchte, enthält eine aktive ERESOURCE. |
0x30 | Aktuelle IRQL | Angeforderte IRQL | 0 | Der Treiber hat einen ungültigen Parameter an KeRaiseIrql übergeben. (Der Parameter war entweder ein Wert niedriger als der aktuelle IRQL oder ein Wert höher als HIGH_LEVEL. Dies kann das Ergebnis der Verwendung eines nicht initialisierten Parameters sein.) |
0x31 | Aktuelle IRQL | Angeforderte IRQL | 0: New IRQL is bad 1: New IRQL is invalid in a DPC routine | Der Treiber hat einen ungültigen Parameter an KeLowerIrql übergeben. (Der Parameter war entweder ein höherer Wert als der aktuelle IRQL oder ein Wert höher als HIGH_LEVEL. Dies kann das Ergebnis der Verwendung eines nicht initialisierten Parameters sein.) |
0x32 | Aktuelle IRQL | Spin-Sperradresse | 0 | Der Treiber hat KeReleaseSpinLock an einer anderen IRQL als DISPATCH_LEVEL aufgerufen. (Dies kann auf eine doppelte Freigabe einer Spinsperre zurückzuführen sein.) |
0x33 | Aktuelle IRQL | Schnelle Mutex-Adresse | 0 | Der Treiber hat versucht, schnelles Mutex mit IRQL-APC_LEVEL > zu erwerben. |
0x34 | Aktuelle IRQL | Anzahl der Thread-APC-Deaktivierung | Schnelle Mutex-Adresse | Der Treiber hat versucht, schnelle Mutex bei einem anderen IRQL als APC_LEVEL freizugeben. |
0x35 | Aktuelle IRQL | Adresse der Spin-Sperre | Alte IRQL | Der Kernel hat eine Spinsperre mit IRQL freigegeben, die nicht gleich DISPATCH_LEVEL ist. |
0x36 | Aktuelle IRQL | Nummer der Drehsperre | Alte IRQL | Der Kernel hat eine Spinsperre in die Warteschlange mit IRQL freigegeben, die nicht gleich DISPATCH_LEVEL. |
0x37 | Aktuelle IRQL | Anzahl der Thread-APC-Deaktivierung | Resource | Der Treiber hat versucht, eine Ressource zu erwerben, apCs sind jedoch nicht deaktiviert. |
0x38 | Aktuelle IRQL | Anzahl der Thread-APC-Deaktivierung | Resource | Der Treiber hat versucht, eine Ressource freizugeben, apCs sind jedoch nicht deaktiviert. |
0x39 | Aktuelle IRQL | Anzahl der Thread-APC-Deaktivierung | Mutex | Der Treiber hat versucht, einen Mutex "unsicher" mit IRQL zu erwerben, der nicht gleich APC_LEVEL beim Einstieg ist. |
0x3A | Aktuelle IRQL | Anzahl der Thread-APC-Deaktivierung | Mutex | Der Treiber hat versucht, einen Mutex "unsicher" mit IRQL freizugeben, der nicht gleich APC_LEVEL beim Eintrag ist. |
0x3B | Aktuelle IRQL | Objekt, auf das gewartet werden soll | Timeoutparameter | Die KeWaitXxx-Routine wird bei DISPATCH_LEVEL oder höher aufgerufen. |
0x3C | Handle an Routine übergeben | Objekttyp | 0 | Der Treiber namens ObReferenceObjectByHandle mit einem fehlerhaften Handle. |
0x3D | 0 | 0 | Adresse der fehlerhaften Ressource | Der Treiber hat eine fehlerhafte (nicht ausgerichtete) Ressource an ExAcquireResourceExclusive übergeben. |
0x3E | 0 | 0 | 0 | Der Treiber namens KeLeaveCriticalRegion für einen Thread, der sich derzeit nicht in einer kritischen Region befindet. |
0x3F | Objektadresse | Neue Objektverweisanzahl. -1: Rückschlussfall 1: Referenzfall | 0 | Der Treiber hat ObReferenceObject auf ein Objekt angewendet, das eine Verweisanzahl von 0 hat, oder der Treiber hat ObDereferenceObject auf ein Objekt angewendet, dessen Verweisanzahl 0 ist. |
0x40 | Aktuelle IRQL | Adresse der Spin-Sperre | 0 | Der Treiber namens KeAcquireSpinLockAtDpcLevel mit IRQL < DISPATCH_LEVEL. |
0x41 | Aktuelle IRQL | Adresse der Spin-Sperre | 0 | Der Treiber namens KeReleaseSpinLockFromDpcLevel mit IRQL < DISPATCH_LEVEL. |
0x42 | Aktuelle IRQL | Adresse der Spin-Sperre | 0 | Der Treiber namens KeAcquireSpinLock mit IRQL > DISPATCH_LEVEL. |
0x51 | Basisadresse der Zuordnung | Adresse des Verweises über die Zuordnung hinaus | Anzahl der berechneten Bytes | Der Treiber hat versucht, Arbeitsspeicher freizugeben, nachdem er am Ende der Zuordnung geschrieben hat. Eine Fehlerüberprüfung mit diesem Parameter tritt nur auf, wenn die Poolnachverfolgungsoption der Treiberüberprüfung aktiv ist. |
0x52 | Basisadresse der Zuordnung | Hasheintrag | Anzahl der berechneten Bytes | Der Treiber hat versucht, Arbeitsspeicher freizugeben, nachdem er am Ende der Zuordnung geschrieben hat. Eine Fehlerüberprüfung mit diesem Parameter tritt nur auf, wenn die Poolnachverfolgungsoption der Treiberüberprüfung aktiv ist. |
0x53 | Basisadresse der Zuordnung | Header | Reserviert | Der Treiber hat versucht, Arbeitsspeicher freizugeben, nachdem er am Ende der Zuordnung geschrieben hat. Eine Fehlerüberprüfung mit diesem Parameter tritt nur auf, wenn die Poolnachverfolgungsoption der Treiberüberprüfung aktiv ist. |
0x54 | Basisadresse der Zuordnung | Reserviert | Poolhashgröße | Der Treiber hat versucht, Arbeitsspeicher freizugeben, nachdem er am Ende der Zuordnung geschrieben hat. Eine Fehlerüberprüfung mit diesem Parameter tritt nur auf, wenn die Poolnachverfolgungsoption der Treiberüberprüfung aktiv ist. |
0x59 | Basisadresse der Zuordnung | Listindex | Reserviert | Der Treiber hat versucht, Arbeitsspeicher freizugeben, nachdem er über das Ende der Zuordnung geschrieben hat. Eine Fehlerüberprüfung mit diesem Parameter tritt nur auf, wenn die Option Poolnachverfolgung der Treiberüberprüfung aktiv ist. |
0x60 | Ausgelagerter Pool zugeordnete Bytes | Aus nicht ausseitigem Pool zugeordnete Bytes | Gesamtzahl der Zuordnungen, die nicht freigegeben wurden | Der Fahrer entlädt sich, ohne zuerst seine Poolzuordnungen freizusetzen. Eine Fehlerüberprüfung mit diesem Parameter tritt nur auf, wenn die Option Poolnachverfolgung der Treiberüberprüfung aktiv ist. |
0x61 | Ausgelagerter Pool zugeordnete Bytes | Aus nicht ausseitigem Pool zugeordnete Bytes | Gesamtzahl der Zuordnungen, die nicht freigegeben wurden | Ein Treiberthread versucht, den Poolspeicher zuzuweisen, während der Treiber entladen wird. Eine Fehlerüberprüfung mit diesem Parameter tritt nur auf, wenn die Option Poolnachverfolgung der Treiberüberprüfung aktiv ist. |
0x62 | Name des Treibers | Reserviert | Gesamtzahl der Zuordnungen, die nicht freigegeben wurden, einschließlich ausgelagerter und nicht ausgelagerter Pools | Der Fahrer entlädt sich, ohne zuerst seine Poolzuordnungen freizusetzen. Eine Fehlerüberprüfung mit diesem Parameter tritt nur auf, wenn die Option Poolnachverfolgung der Treiberüberprüfung aktiv ist. Geben Sie !verifier 3 drivername.sys ein, um Informationen zu den Zuordnungen zu erhalten, die die Fehlerüberprüfung verursacht haben. |
0x6F | MDL-Adresse | Physische Seite, die gesperrt wird | Höchste physische Seite im System | MmProbeAndLockPages wird auf Seiten aufgerufen, die sich nicht in der PFN-Datenbank befinden. Dies ist in der Regel ein Treiber, der diese Routine aufruft, um seinen eigenen privaten Dualport-RAM zu sperren. Dies ist nicht nur nicht erforderlich, es kann auch den Arbeitsspeicher auf Computern mit nicht zusammenhängendem physischem RAM beschädigen. |
0x70 zu 0x91
Parameter 1 | Parameter 2 | Parameter 3 | Parameter 4 | Fehlerursache |
---|---|---|---|---|
0x70 | Aktuelle IRQL | MDL-Adresse | Zugriffsmodus | Der Treiber namens MmProbeAndLockPages mit IRQL > DISPATCH_LEVEL. |
0x71 | Aktuelle IRQL | MDL-Adresse | Prozessadresse | Der Treiber mit dem Namen MmProbeAndLockProcessPages mit IRQL-DISPATCH_LEVEL > . |
0x72 | Aktuelle IRQL | MDL-Adresse | Prozessadresse | Der Treiber namens MmProbeAndLockSelectedPages mit IRQL > DISPATCH_LEVEL. |
0x73 | Aktuelle IRQL | In 32-Bit-Windows: Niedrige 32 Bits der physischen Adresse In 64-Bit-Windows: die physische 64-Bit-Adresse | Anzahl von Bytes | Der Treiber namens MmMapIoSpace mit IRQL > DISPATCH_LEVEL. |
0x74 | Aktuelle IRQL | MDL-Adresse | Zugriffsmodus | Der Treiber namens MmMapLockedPages im Kernelmodus mit IRQL > DISPATCH_LEVEL. |
0x75 | Aktuelle IRQL | MDL-Adresse | Zugriffsmodus | Der Treiber namens MmMapLockedPages im Benutzermodus mit IRQL > APC_LEVEL. |
0x76 | Aktuelle IRQL | MDL-Adresse | Zugriffsmodus | Der Treiber namens MmMapLockedPagesSpecifyCache im Kernelmodus mit IRQL > DISPATCH_LEVEL. |
0x77 | Aktuelle IRQL | MDL-Adresse | Zugriffsmodus | Der Treiber mmMapLockedPagesSpecifyCache im Benutzermodus mit IRQL > APC_LEVEL. |
0x78 | Aktuelle IRQL | MDL-Adresse | 0 | Der Treiber namens MmUnlockPages mit IRQL > DISPATCH_LEVEL. |
0x79 | Aktuelle IRQL | Virtuelle Adresse, die nicht zugeordnet wird | MDL-Adresse | Der Treiber namens MmUnmapLockedPages im Kernelmodus mit IRQL > DISPATCH_LEVEL. |
0x7A | Aktuelle IRQL | Virtuelle Adresse, die nicht zugeordnet wird | MDL-Adresse | Der Treiber namens MmUnmapLockedPages im Benutzermodus mit IRQL > APC_LEVEL. |
0x7B | Aktuelle IRQL | Virtuelle Adresse, die nicht zugeordnet wird | Anzahl von Bytes | Der Treiber namens MmUnmapIoSpace mit IRQL > APC_LEVEL. |
0x7C | MDL-Adresse | MDL-Flags | 0 | Der Treiber hat MmUnlockPages aufgerufen und eine MDL übergeben, deren Seiten nie erfolgreich gesperrt wurden. |
0x7D | MDL-Adresse | MDL-Flags | 0 | Der Treiber hat mmUnlockPages aufgerufen und eine MDL übergeben, deren Seiten aus einem nicht ausseitigen Pool stammen. (Diese sollten niemals entsperrt werden.) |
0x7E | Aktuelle IRQL | DISPATCH_LEVEL | 0 | Der Treiber mit dem Namen MmAllocatePagesForMdl, MmAllocatePagesForMdlEx oder MmFreePagesFromMdl mit IRQL > DISPATCH_LEVEL. |
0x7F | Aktuelle IRQL | MDL-Adresse | MDL-Flags | Der Treiber hat BuildMdlForNonPagedPool aufgerufen und eine MDL übergeben, deren Seiten aus einem ausgelagerten Pool stammen. |
0x80 | Aktuelle IRQL | Ereignisadresse | 0 | Der Treiber namens KeSetEvent mit IRQL > DISPATCH_LEVEL. |
0x81 | MDL-Adresse | MDL-Flags | 0 | Der Treiber namens MmMapLockedPages. (Sie sollten stattdessen MmMapLockedPagesSpecifyCache verwenden, wobei der Parameter BugCheckOnFailure auf FALSE festgelegt ist.) |
0x82 | MDL-Adresse | MDL-Flags | 0 | Der Treiber mit dem Namen MmMapLockedPagesSpecifyCache mit dem Parameter BugCheckOnFailure gleich TRUE. (Dieser Parameter sollte auf FALSE festgelegt werden.) |
0x83 | Beginn des zuzuordnenden physischen Adressbereichs | Anzahl der zuzuordnenden Bytes | Framenummer der ersten Seite, die nicht gesperrt ist | Der Treiber hat MmMapIoSpace aufgerufen, ohne die MDL-Seiten gesperrt zu haben. Die physischen Seiten, die durch den zugeordneten physischen Adressbereich dargestellt werden, müssen vor diesem Aufruf gesperrt worden sein. |
0x85 | MDL-Adresse | Anzahl der zu zuordnenden Seiten | Framenummer der ersten Seite, die nicht gesperrt ist | Der Treiber hat mmMapLockedPages aufgerufen, ohne die MDL-Seiten gesperrt zu haben. |
0x89 | MDL-Adresse | Zeiger auf die Seite ohne Arbeitsspeicher in der MDL | Die Seitennummer ohne Arbeitsspeicher in der MDL | Eine MDL ist nicht als "E/A" gekennzeichnet, enthält jedoch Seitenadressen ohne Arbeitsspeicher. |
0x91 | Reserviert | Reserviert | Reserviert | Der Treiber hat stapelweise mit einer Methode gewechselt, die vom Betriebssystem nicht unterstützt wird. Die einzige unterstützte Möglichkeit zum Erweitern eines Kernelmodusstapels ist die Verwendung von KeExpandKernelStackAndCallout. |
0xA0 zu 0x140
Parameter 1 | Parameter 2 | Parameter 3 | Parameter 4 | Fehlerursache |
---|---|---|---|---|
0xA0 | Zeiger auf das IRP, das die Lese- oder Schreibanforderung stellt. | Geräteobjekt des unteren Geräts | Nummer des Sektors, in dem der Fehler erkannt wurde | Auf einer Festplatte wurde ein Fehler bei der zyklischen Redundanzprüfung (CRC) erkannt. Eine Fehlerüberprüfung mit diesem Parameter erfolgt nur, wenn die Option Datenträgerintegritätsprüfung der Treiberüberprüfung aktiv ist. |
0xA1 | Kopie des IRP, das die Lese- oder Schreibanforderung stellt. (Die tatsächliche IRP wurde abgeschlossen.) | Geräteobjekt des unteren Geräts | Nummer des Sektors, in dem der Fehler erkannt wurde | Ein CRC-Fehler wurde (asynchron) für einen Sektor erkannt. Eine Fehlerüberprüfung mit diesem Parameter erfolgt nur, wenn die Option Datenträgerintegritätsprüfung der Treiberüberprüfung aktiv ist. |
0xA2 | IRP, das die Lese- oder Schreibanforderung oder eine Kopie dieser IRP macht | Geräteobjekt des unteren Geräts | Nummer des Sektors, in dem der Fehler erkannt wurde | Die CRCDISK-Prüfsummenkopien stimmen nicht überein. Dies kann ein Pagingfehler sein. Eine Fehlerüberprüfung mit diesem Parameter erfolgt nur, wenn die Option Datenträgerintegritätsprüfung der Treiberüberprüfung aktiv ist. |
0xB0 | MDL-Adresse | MDL-Flags | Falsche MDL-Flags | Der Treiber mit dem Namen MmProbeAndLockPages für eine MDL mit falschen Flags. Beispielsweise hat der Treiber eine von MmBuildMdlForNonPagedPool erstellte MDL an MmProbeAndLockPages übergeben. |
0xB1 | MDL-Adresse | MDL-Flags | Falsche MDL-Flags | Der Treiber mit dem Namen MmProbeAndLockProcessPages für eine MDL mit falschen Flags. Beispielsweise hat der Treiber eine von MmBuildMdlForNonPagedPool erstellte MDL an MmProbeAndLockProcessPages übergeben. |
0xB2 | MDL-Adresse | MDL-Flags | Falsche MDL-Flags | Der Treiber namens MmMapLockedPages für eine MDL mit falschen Flags. Beispielsweise hat der Treiber eine MDL übergeben, die bereits einer Systemadresse zugeordnet ist oder die nicht für MmMapLockedPages gesperrt war. |
0xB3 | MDL-Adresse | MDL-Flags | Fehlende MDL-Flags (mindestens eins wurde erwartet) | Der Treiber namens MmMapLockedPages für eine MDL mit falschen Flags. Beispielsweise hat der Treiber eine MDL übergeben, die nicht für MmMapLockedPages gesperrt ist. |
0xB4 | MDL-Adresse | MDL-Flags | Unerwartetes partielles MDL-Flag | Der Treiber namens MmUnlockPages für eine partielle MDL. Eine partielle MDL wurde von IoBuildPartialMdl erstellt. |
0xB5 | MDL-Adresse | MDL-Flags | Unerwartetes partielles MDL-Flag | MmUnmapLockedPages wird für eine partielle MDL aufgerufen (erstellt mit IoBuildPartialMdl). |
0xB6 | MDL-Adresse | MDL-Flags | Fehlendes MDL-Flag | MmUnmapLockedPages wird für eine MDL aufgerufen, die keiner Systemadresse zugeordnet ist. |
0xB7 | Anzahl der beschädigten physischen Seiten. | Erste beschädigte physische Seite. | Letzte beschädigte physische Seite. | Das System-BIOS hat während eines Energiesparübergangs einen unzureichenden physischen Arbeitsspeicher beschädigt. |
0xB8 | MDL-Adresse | MDL-Flags | Reserviert | Die Seiten, die von der MDL beschrieben werden, werden weiterhin zugeordnet. Der Treiber muss die Zuordnung der Seiten aufheben, bevor IoFreeMdl aufgerufen wird. |
0xB9 | Adresse, die nicht zugeordnet wird. | MDL-Adresse. | Reserviert | MmUnmapLockedPages wird mit einer ungültigen Benutzerraumadresse aufgerufen. |
0xC0 | Adresse des IRP | 0 | Reserviert | Der Treiber namens IoCallDriver mit deaktivierten Interrupts. |
0xC1 | Adresse der Treiber-Dispatchroutine | Reserviert | Reserviert | Eine Treiberverteilungsroutine wurde mit deaktivierten Interrupts zurückgegeben. |
0xC2 | 0 | 0 | 0 | Der Treiber rief eine Schnelle E/A-Dispatch-Routine auf, nachdem Unterbrechungen deaktiviert wurden. |
0xC3 | Adresse der Schnell-E/A-Versandroutine des Treibers | Reserviert | Reserviert | Eine Schnelle E/A-Verteilroutine des Treibers wurde mit deaktivierten Interrupts zurückgegeben. |
0xC5 | Adresse der Treiber-Dispatchroutine | Die APC-Deaktivierungsanzahl des aktuellen Threads | Die APC-Deaktivierungsanzahl des Threads vor dem Aufrufen der Treiberverteilungsroutine | Eine Treiberverteilungsroutine hat die Anzahl der APC-Deaktivierungsvorgänge des Threads geändert. Die APC-Deaktivierungsanzahl wird jedes Mal dekrementiert, wenn ein Treiber KeEnterCriticalRegion, FsRtlEnterFileSystem aufruft oder einen Mutex abruft. Die Anzahl der APC-Deaktivierung wird jedes Mal erhöht, wenn ein Treiber KeLeaveCriticalRegion, KeReleaseMutex oder FsRtlExitFileSystem aufruft. Da diese Aufrufe immer paarweise sein sollten, sollte die Anzahl der APC-Deaktivierungsvorgänge beim Beenden eines Threads null sein. Ein negativer Wert gibt an, dass ein Treiber APC-Aufrufe deaktiviert hat, ohne sie erneut zu aktivieren. Ein positiver Wert gibt an, dass der umgekehrte Wert wahr ist. |
0xC6 | Adresse der Schnell-E/A-Versandroutine des Treibers | APC-Deaktivierungsanzahl des aktuellen Threads | Die Anzahl der APC-Deaktivierungsvorgänge des Threads vor dem Aufrufen der Dispatchroutine für schnelle E/A-Treiber | Eine Treiberroutine für schnelle E/A-Verteiler hat die Anzahl der APC-Deaktivierungsvorgänge des Threads geändert. Die APC-Deaktivierungsanzahl wird jedes Mal dekrementiert, wenn ein Treiber KeEnterCriticalRegion, FsRtlEnterFileSystem aufruft oder einen Mutex abruft. Die Anzahl der APC-Deaktivierung wird jedes Mal erhöht, wenn ein Treiber KeLeaveCriticalRegion, KeReleaseMutex oder FsRtlExitFileSystem aufruft. Da diese Aufrufe immer paarweise sein sollten, sollte die Anzahl der APC-Deaktivierungsvorgänge beim Beenden eines Threads null sein. Ein negativer Wert gibt an, dass ein Treiber APC-Aufrufe deaktiviert hat, ohne sie erneut zu aktivieren. Ein positiver Wert gibt an, dass der umgekehrte Wert wahr ist. |
0xCA | Adresse der Suchliste | Reserviert | Reserviert | Der Treiber hat versucht, eine Suchliste neu zu initialisieren. |
0xCB | Adresse der Suchliste | Reserviert | Reserviert | Der Treiber hat versucht, eine nicht initialisierte Suchliste zu löschen. |
0xCC | Adresse der Suchliste | Startadresse der Poolzuordnung | Größe der Poolzuordnung | Der Treiber hat versucht, eine Poolzuordnung freizusetzen, die eine aktive Suchliste enthält. |
0xCD | Adresse der Suchliste | Vom Aufrufer angegebene Blockgröße | Unterstützte Mindestblockgröße | Der Treiber hat versucht, eine Suchliste mit einer zu kleinen Zuordnungsblockgröße zu erstellen. |
0xD0 | Adresse der ERESOURCE-Struktur | Reserviert | Reserviert | Der Treiber hat versucht, eine ERESOURCE-Struktur neu zu initialisieren. |
0xD1 | Adresse der ERESOURCE-Struktur | Reserviert | Reserviert | Der Treiber hat versucht, eine nicht initialisierte ERESOURCE-Struktur zu löschen. |
0xD2 | Adresse der ERESOURCE-Struktur | Startadresse der Poolzuordnung | Größe der Poolzuordnung | Der Treiber hat versucht, eine Poolzuordnung freizusetzen, die eine aktive ERESOURCE-Struktur enthält. |
0xD5 | Adresse der IO_REMOVE_LOCK Struktur, die von der überprüften Buildversion des Treibers erstellt wurde | Aktuelles IoReleaseRemoveLock-Tag | Reserviert | Das aktuelle IoReleaseRemoveLock-Tag stimmt nicht mit dem vorherigen IoAcquireRemoveLock-Tag überein. Wenn sich der Treiber, der IoReleaseRemoveLock aufruft, nicht in einem überprüften Build befindet, ist Parameter 2 die Adresse der Schatten IO_REMOVE_LOCK Struktur, die von Driver Verifier im Namen des Treibers erstellt wurde. In diesem Fall wird die Adresse der IO_REMOVE_LOCK-Struktur, die vom Treiber verwendet wird, überhaupt nicht verwendet, da driver verifier die Sperradresse für alle Entfernensperr-APIs ersetzt. Eine Fehlerüberprüfung mit diesem Parameter tritt nur auf, wenn die E/A-Überprüfungsoption der Treiberüberprüfung aktiv ist. |
0xD6 | Adresse der IO_REMOVE_LOCK Struktur, die von der überprüften Buildversion des Treibers erstellt wurde | Tag, das nicht mit dem vorherigen IoAcquireRemoveLock-Tag übereinstimmt | Vorheriges IoAcquireRemoveLock-Tag | Das aktuelle IoReleaseRemoveLockAndWait-Tag stimmt nicht mit dem vorherigen IoAcquireRemoveLock-Tag überein. Wenn der Treiber, der IoReleaseRemoveLock aufruft, kein überprüfter Build ist, ist Parameter 2 die Adresse der Schatten IO_REMOVE_LOCK Struktur, die von Driver Verifier im Auftrag des Treibers erstellt wurde. In diesem Fall wird die Adresse der IO_REMOVE_LOCK-Struktur, die vom Treiber verwendet wird, überhaupt nicht verwendet, da driver verifier die Sperradresse für alle Entfernensperr-APIs ersetzt. Eine Fehlerüberprüfung mit diesem Parameter tritt nur auf, wenn die E/A-Überprüfungsoption der Treiberüberprüfung aktiv ist. |
0xD7 | Adresse des überprüften Builds Entfernen Sie die Sperrstruktur, die intern von Driver Verifier verwendet wird. | Adresse der vom Treiber angegebenen Struktur "Sperre entfernen" | Reserviert | Eine Remove-Sperre kann nicht erneut initialisiert werden, auch wenn ioReleaseRemoveLockAndWait aufgerufen wurde, da andere Threads diese Sperre möglicherweise noch verwenden (durch Aufrufen von IoAcquireRemoveLock). Der Treiber sollte die Entfernungssperre innerhalb seiner Geräteerweiterung zuordnen und sie ein einziges Mal initialisieren. Die Sperre wird zusammen mit der Geräteerweiterung gelöscht. |
0xDA | Startadresse des Treibers | WMI-Rückrufadresse im Treiber | Reserviert | Es wurde versucht, einen Treiber zu entladen, der die Registrierung seiner WMI-Rückruffunktion nicht aufgehoben hat. |
0xDB | Adresse des Geräteobjekts | Reserviert | Reserviert | Es wurde versucht, ein Geräteobjekt zu löschen, das nicht von WMI abgemeldet wurde. |
0xDC | Reserviert | Reserviert | Reserviert | Ein ungültiger RegHandle-Wert wurde als Parameter der Funktion EtwUnregister angegeben. |
0xDD | Adresse des Aufrufs von EtwRegister | Startadresse des Entladetreibers | Bei Windows 8 und höheren Versionen ist dieser Parameter der ETW RegHandle-Wert. | Es wurde versucht, einen Treiber zu entladen, ohne EtwUnregister aufzurufen. |
0xDF | Adresse des Synchronisierungsobjekts | 0 | 0 | Das Synchronisierungsobjekt befindet sich im Sitzungsadressraum. Synchronisierungsobjekte sind im Sitzungsadressraum nicht zulässig, da sie aus einer anderen Sitzung oder aus Systemthreads bearbeitet werden können, die keinen virtuellen Sitzungsadressraum haben. |
0xE0 | Benutzermodusadresse, die als Parameter verwendet wird | Größe , in Bytes, des Adressbereichs, der als Parameter verwendet wird | Reserviert | Es wurde eine Kernelfunktion des Betriebssystems aufgerufen, die eine Benutzermodusadresse als Parameter angegeben hat. |
0xE1 | Adresse des Synchronisierungsobjekts | Reserviert | Reserviert | Es wurde festgestellt, dass ein Synchronisierungsobjekt über eine adresse verfügt, die entweder ungültig oder auslagerungsfähig war. |
0xE2 | Adresse des IRP | Im IRP vorhandene Benutzermodusadresse | Reserviert | Es wurde festgestellt, dass ein IRP mit Irp-RequestorMode> auf KernelMode festgelegt ist, dass eine Benutzermodusadresse als eines seiner Member vorhanden ist. |
0xE3 | Adresse des Aufrufs der API | Benutzermodusadresse, die als Parameter in der API verwendet wird | Reserviert | Ein Treiber hat eine Kernelmodus-ZwXxx-Routine mit einer Benutzermodusadresse als Parameter aufgerufen. |
0xE4 | Adresse des Aufrufs der API | Adresse der fehlerhaften UNICODE_STRING-Struktur | Reserviert | Ein Treiber hat eine Kernelmodus-ZwXxx-Routine mit einer fehlerhaften UNICODE_STRING-Struktur als Parameter aufgerufen. |
0xE5 | Aktuelle IRQL | Reserviert | Reserviert | Eine Kernel-API wurde am falschen IRQL aufgerufen. |
0xE6 | Adresse innerhalb des Treibers, der den Zw-API-Aufruf vornimmt | Aktuelle IRQL | Spezielle Kernel-APCs. | Die Kernel-Zw-API wurde bei IRQL = PASSIVE_LEVEL und mit aktivierten speziellen Kernel-APCs nicht aufgerufen. |
0xEA | Aktuelle IRQL | Die Anzahl der APC-Deaktivierungsvorgänge des Threads | Adresse des Pushlocks | Ein Treiber hat versucht, einen Pushlock zu erhalten, während APCs aktiviert sind. |
0xEB | Aktuelle IRQL | Die Anzahl der APC-Deaktivierungsvorgänge des Threads | Adresse des Pushlocks | Ein Treiber hat versucht, einen Pushlock freizugeben, während APCs aktiviert sind. |
0xF0 | Adresse des Zielpuffers | Adresse des Quellpuffers | Anzahl der zu kopierenden Bytes | Ein Treiber namens memcpy-Funktion mit überlappenden Quell- und Zielpuffern. |
0xF5 | Adresse des NULL-Handles | Objekttyp | Reserviert | Ein Treiber hat ein NULL-Handle an ObReferenceObjectByHandle übergeben. |
0xF6 | Handle-Wert, auf den verwiesen wird | Adresse des aktuellen Prozesses | Adresse innerhalb des Treibers, der den falschen Verweis ausführt | Ein Treiber verweist auf ein Benutzermodushandle als Kernelmodus. |
0xF7 | Vom Aufrufer angegebene Handle-Wert | Vom Aufrufer angegebene Objekttyp | Vom Aufrufer angegebene AccessMode | Ein Treiber versucht einen Benutzermodusverweis für ein Kernelhandle im Kontext des Systemprozesses. |
0xFA | Adresse der Vervollständigungsroutine. | IRQL-Wert vor dem Aufrufen der Abschlussroutine | Aktueller IRQL-Wert, nachdem er die Abschlussroutine aufgerufen hat | Die IRP-Vervollständigungsroutine wurde an einer IRQL zurückgegeben, die sich von der IRQL unterscheidet, bei der die Routine aufgerufen wurde. |
0xFB | Adresse der Vervollständigungsroutine | Anzahl der APC-Deaktivierung des aktuellen Threads | Die Anzahl der APC-Deaktivierungsvorgänge des Threads, bevor die IRP-Vervollständigungsroutine aufgerufen wird | Die Anzahl der APC-Deaktivierungsvorgänge des Threads wurde durch die IRP-Vervollständigungsroutine des Treibers geändert. Die Anzahl der APC-Deaktivierungen wird jedes Mal verringert, wenn ein Treiber KeEnterCriticalRegion, FsRtlEnterFileSystem aufruft oder einen Mutex abruft. Die Anzahl der APC-Deaktivierung wird jedes Mal erhöht, wenn ein Treiber KeLeaveCriticalRegion, KeReleaseMutex oder FsRtlExitFileSystem aufruft. Da diese Aufrufe immer paarweise sein sollten, sollte die APC-Deaktivierungsanzahl null sein, wenn ein Thread beendet wird. Ein negativer Wert gibt an, dass ein Treiber APC-Aufrufe deaktiviert hat, ohne sie erneut zu aktivieren. Ein positiver Wert gibt an, dass der umgekehrte Wert true ist. |
0xFC | Adresse innerhalb des Treibers, die den falschen API-Aufruf vornimmt. | Bereitgestellter ApcContext-Wert. | Reserviert | Aufrufen von ZwNotifyChangeKey (aus dem Kernelmodus) mit dem nicht unterstützten ApcContext-Wert. |
0x105 zu 0x140
Parameter 1 | Parameter 2 | Parameter 3 | Parameter 4 | Fehlerursache |
---|---|---|---|---|
0x105 | Adresse des IRP | 0 | 0 | Der Treiber verwendet ExFreePool anstelle von IoFreeIrp, um die IRP freizugeben. |
0x10A | 0 | 0 | 0 | Der Treiber versucht, das Poolkontingent für den Leerlaufprozess in Rechnung zu stellen. |
0x10B | 0 | 0 | 0 | Der Treiber versucht, das Poolkontingent aus einer DPC-Routine zu berechnen. Dies ist falsch, da der aktuelle Prozesskontext nicht definiert ist. |
0x110 | Adresse der Interruptdienstroutine | Adresse des erweiterten Kontexts, der vor der Ausführung der ISR gespeichert wurde | Die Adresse des erweiterten Kontexts wurde gespeichert, nachdem die ISR ausgeführt wurde. | Die Interruptdienstroutine (ISR) für den Treiber hat den erweiterten Threadkontext beschädigt. |
0x111 | Adresse der Interruptdienstroutine | IRQL vor der Ausführung von ISR | IRQL nach der Ausführung von ISR | Die Interruptdienstroutine hat eine geänderte IRQL zurückgegeben. |
0x115 | Die Adresse des Threads, der für das Herunterfahren verantwortlich ist, der möglicherweise deadlocked ist. | 0 | 0 | Die Treiberüberprüfung hat erkannt, dass das System länger als 20 Minuten gedauert hat und das Herunterfahren nicht abgeschlossen ist. |
0x11A | Aktuelle IRQL | 0 | 0 | Der Treiber ruft KeEnterCriticalRegion bei IRQL > APC_LEVEL auf. |
0x11B | Aktuelle IRQL | 0 | 0 | Der Treiber ruft KeLeaveCriticalRegion am IRQL-APC_LEVEL > auf. |
0x120 | Adresse des IRQL-Werts | Adresse des Objekts, auf das gewartet werden soll | Adresse des Timeoutwerts | Der Thread wartet am IRQL-DISPATCH_LEVEL > . Aufrufer von KeWaitForSingleObject oder KeWaitForMultipleObjects müssen unter IRQL <= DISPATCH_LEVEL ausgeführt werden. |
0x121 | Adresse des IRQL-Werts | Adresse des Objekts, auf das gewartet werden soll | Adresse des Timeoutwerts | Der Thread wartet am IRQL gleich DISPATCH_LEVEL, und das Timeout ist NULL. Aufrufer von KeWaitForSingleObject oder KeWaitForMultipleObjects können unter IRQL <= DISPATCH_LEVEL ausgeführt werden. Wenn ein NULL-Zeiger für Timeout angegeben wird, verbleibt der aufrufende Thread in einem Wartezustand, bis das Objekt signalisiert wird. |
0x122 | Adresse des IRQL-Werts | Adresse des Objekts, auf das gewartet werden soll | Adresse des Timeoutwerts | Der Thread wartet bei DISPATCH_LEVEL, und der Timeoutwert ist nicht gleich 0 (0). Wenn das Timeout != 0 ist, müssen die Aufrufer von KeWaitForSingleObject oder KeWaitForMultipleObjects unter IRQL <= APC_LEVEL ausgeführt werden. |
0x123 | Adresse des Objekts, auf das gewartet werden soll | 0 | 0 | Der Aufrufer von KeWaitForSingleObject oder KeWaitForMultipleObjects hat den Wait als UserMode angegeben, aber das Objekt befindet sich im Kernelstapel. |
0x130 | Adresse des Arbeitselements | 0 | 0 | Das Arbeitselement befindet sich im Sitzungsadressraum. Arbeitselemente sind im Sitzungsadressraum nicht zulässig, da sie von einer anderen Sitzung oder aus Systemthreads ohne virtuellen Sitzungsadressraum bearbeitet werden können. |
0x131 | Adresse des Arbeitselements | 0 | 0 | Das Arbeitselement befindet sich im ausgelagerten Speicher. Arbeitselemente müssen sich im nicht auslagerbaren Arbeitsspeicher befinden, da der Kernel sie bei DISPATCH_LEVEL verwendet. |
0x135 | Adresse des IRP | Anzahl der zulässigen Millisekunden zwischen dem IoCancelIrp-Aufruf und dem Abschluss dieses IRP | 0 | Die abgebrochene IRP wurde in der erwarteten Zeit nicht abgeschlossen. Der Treiber brauchte länger als erwartet, um die abgebrochene IRP abzuschließen. |
0x13A | Adresse des freigegebenen Poolblocks | Falscher Wert | Adresse des falschen Werts | Der Treiber hat den Namen ExFreePool und Driver Verifier erkennt einen Fehler in einem der internen Werte, der zum Nachverfolgen der Poolnutzung verwendet wird. |
0x13B | Adresse des freigegebenen Poolblocks | Adresse des falschen Werts | Adresse eines Zeigers auf die falsche Speicherseite | Der Treiber hat den Namen ExFreePool und Driver Verifier erkennt einen Fehler in einem der internen Werte, der zum Nachverfolgen der Poolnutzung verwendet wird. |
0x13C | Adresse des freigegebenen Poolblocks | Falscher Wert | Adresse des falschen Werts | Der Treiber hat den Namen ExFreePool und Driver Verifier erkennt einen Fehler in einem der internen Werte, der zum Nachverfolgen der Poolnutzung verwendet wird. |
0x13D | Adresse des freigegebenen Poolblocks | Adresse des falschen Werts | Korrekter Wert, der erwartet wurde | Der Treiber hat den Namen ExFreePool und Driver Verifier erkennt einen Fehler in einem der internen Werte, der zum Nachverfolgen der Poolnutzung verwendet wird. |
0x13E | Vom Aufrufer angegebene Poolblockadresse | Vom Driver Verifier nachverfolgte Poolblockadresse | Zeiger auf die Poolblockadresse, die von driver verifier nachverfolgt wird | Die vom Aufrufer von ExFreePool angegebene Poolblockadresse unterscheidet sich von der Adresse, die von driver verifier nachverfolgt wird. |
0x13F | Adresse des freigegebenen Poolblocks | Anzahl der freigegebenen Bytes | Zeiger auf die Anzahl der by Driver Verifier nachverfolgten Bytes | Die Anzahl der Bytes an Arbeitsspeicher, die beim Aufruf von ExFreePool freigegeben werden, unterscheidet sich von der Anzahl der Bytes, die von driver verifier nachverfolgt werden. |
0x140 | Aktuelle IRQL | MDL-Adresse | Dieser MDL zugeordnete virtuelle Adresse | Eine nicht gesperrte MDL wurde entweder aus ausstellbarem oder handelbarem Speicher erstellt. |
0x141 | Höchste physische Adresse, die der Treiber für die Zuordnung angefordert hat | Anzahl der zuzuordnenden Bytes | 0 | Der Treiber fordert explizit physischen Arbeitsspeicher unter 4 GB an. |
0x1000 zu 0x100B : Deadlocks
Parameter 1 | Parameter 2 | Parameter 3 | Parameter 4 | Fehlerursache |
---|---|---|---|---|
0x1000 | Adresse der Ressource | Reserviert | Reserviert | Selbst-Deadlock: Der aktuelle Thread hat versucht, eine Ressource, die nur freigegeben ist, rekursiv und ausschließlich zu erwerben. Eine Fehlerüberprüfung mit diesem Parameter erfolgt nur, wenn die Option Deadlockerkennung der Treiberüberprüfung aktiv ist. |
0x1001 | Adresse der Ressource, die die endgültige Ursache des Deadlocks war | Reserviert | Reserviert | Deadlock: Es wurde ein Verstoß gegen die Sperrhierarchie gefunden. Eine Fehlerüberprüfung mit diesem Parameter erfolgt nur, wenn die Option Deadlockerkennung der Treiberüberprüfung aktiv ist. (Verwenden Sie die Erweiterung !deadlock für weitere Informationen.) |
0x1002 | Adresse der Ressource | Reserviert | Reserviert | Nicht initialisierte Ressource: Eine Ressource wurde abgerufen, ohne zuvor initialisiert zu werden. Eine Fehlerüberprüfung mit diesem Parameter tritt nur auf, wenn die Deadlockerkennungsoption der Treiberüberprüfung aktiv ist. |
0x1003 | Adresse der Ressource, die deadlocked freigegeben wird | Adresse der Ressource, die zuerst freigegeben werden sollte | Reserviert | Unerwartete Freigabe: Eine Ressource wurde in einer falschen Reihenfolge freigegeben. Eine Fehlerüberprüfung mit diesem Parameter tritt nur auf, wenn die Deadlockerkennungsoption der Treiberüberprüfung aktiv ist. |
0x1004 | Adresse der Ressource | Adresse des Threads, der die Ressource abgerufen hat | Adresse des aktuellen Threads | Unerwarteter Thread: Der falsche Thread gibt eine Ressource frei. Eine Fehlerüberprüfung mit diesem Parameter tritt nur auf, wenn die Deadlockerkennungsoption der Treiberüberprüfung aktiv ist. |
0x1005 | Adresse der Ressource | Reserviert | Reserviert | Mehrfachinitialisierung: Eine Ressource wird mehrmals initialisiert. Eine Fehlerüberprüfung mit diesem Parameter tritt nur auf, wenn die Deadlockerkennungsoption der Treiberüberprüfung aktiv ist. |
0x1007 | Adresse der Ressource | Reserviert | Reserviert | Nicht erworbene Ressource: Eine Ressource wird freigegeben, bevor sie erworben wurde. Eine Fehlerüberprüfung mit diesem Parameter tritt nur auf, wenn die Deadlockerkennungsoption der Treiberüberprüfung aktiv ist. |
0x1008 | Adresse sperren | Reserviert | Reserviert | Der Treiber hat versucht, eine Sperre mithilfe einer API abzurufen, die für diesen Sperrtyp nicht übereinstimmend ist. |
0x1009 | Adresse sperren | Reserviert | Reserviert | Der Treiber hat versucht, eine Sperre mithilfe einer API freizugeben, die für diesen Sperrtyp nicht übereinstimmend ist. |
0x100A | Threadadresse des Besitzers | Reserviert | Der beendete Thread besitzt die Sperre. | |
0x100B | Adresse sperren | Threadadresse des Besitzers | Reserviert | Die gelöschte Sperre ist weiterhin im Besitz eines Threads. |
0x1010 | Geräteobjekt, für das die Schreib-IRP ausgegeben wurde. | Die Adresse des IRP. | System-Space virtuelle Adresse für den Puffer, den die MDL beschreibt. | Invariante MDL-Pufferinhalte für Schreib-Irp wurden geändert. |
0x1011 | Geräteobjekt, für das die Schreib-IRP ausgegeben wurde. | Die Adresse des IRP. | System-Space virtuelle Adresse für den Puffer, den die MDL beschreibt. | Invariante MDL-Pufferinhalte für Lese-Irp wurden während des Versands oder durch Dummyseiten gesicherter Puffer geändert. |
0x1012 | Ein Zeiger auf die Zeichenfolge, die den Verstoß beschreibt. | Daten, die an dieser Beschädigung beteiligt sind (0, wenn nicht verwendet). | Daten, die an dieser Beschädigung beteiligt sind (0, wenn nicht verwendet). | Der Prüfererweiterungsstatusspeicher hat eine Beschädigung erkannt. |
0x1013 | Ein Zeiger auf das Treiberobjekt. | Ein Zeiger auf die erfassten ursprünglichen E/A-Rückrufe. | Reserviert (nicht verwendet). | Die Überprüfung hat interne Beschädigungen in den erfassten ursprünglichen E/A-Rückrufen erkannt. |
0x2000 zu 0x2005– Codeintegritätsprobleme
Parameter 1 | Parameter 2 | Parameter 3 | Parameter 4 | Fehlerursache |
---|---|---|---|---|
0x2000 | Die Adresse im Treibercode, an der der Fehler erkannt wurde. | Pooltyp. | Pooltag (sofern angegeben). | Codeintegritätsproblem: Der Aufrufer hat einen ausführbaren Pooltyp angegeben. (Erwartet: NonPagedPoolNx) |
0x2001 | Die Adresse im Treibercode, an der der Fehler erkannt wurde. | Seitenschutz (WIN32_PROTECTION_MASK). | 0 | Codeintegritätsproblem: Der Aufrufer hat einen Schutz für ausführbare Seiten angegeben. (Erwartet: gelöschte PAGE_EXECUTE*-Bits) |
0x2002 | Die Adresse im Treibercode, an der der Fehler erkannt wurde. | Seitenpriorität (MM_PAGE_PRIORITY logisch ODER mit MdlMapping*). | 0 | Codeintegritätsproblem: Der Aufrufer hat eine ausführbare MDL-Zuordnung angegeben. (Erwartet: MdlMappingNoExecute) |
0x2003 | Der Imagedateiname (Unicode-Zeichenfolge). | Die Adresse des Abschnittsheaders. | Der Abschnittsname (UTF-8-codierte Zeichenfolge). | Codeintegritätsproblem: Das Image enthält einen ausführbaren und beschreibbaren Abschnitt. |
0x2004 | Der Imagedateiname (Unicode-Zeichenfolge). | Die Adresse des Abschnittsheaders. | Der Abschnittsname (UTF-8-codierte Zeichenfolge). | Codeintegritätsproblem: Das Bild enthält einen Abschnitt, der nicht seitenbündig ist. |
0x2005 | Der Imagedateiname (Unicode-Zeichenfolge). | IAT-Verzeichnis. | Der Abschnittsname (UTF-8-codierte Zeichenfolge). | Codeintegritätsproblem: Das Image enthält eine IAT in einem ausführbaren Abschnitt. |
0xA001 zu 0xA00D : Probleme mit vm-Umschaltern
Parameter 1 | Parameter 2 | Parameter 3 | Parameter 4 | Fehlerursache |
---|---|---|---|---|
0xA001 | Ein Zeiger auf das NetBufferList-Objekt | Ein Zeiger auf das virtuelle Switchobjekt (wenn NON-NULL) | Reserviert (nicht verwendet) | VM-Switch: Der SourceHandle für die vom Aufrufer bereitgestellte NetBufferList muss festgelegt werden. Weitere Informationen finden Sie in der Routine "AllocateNetBufferListForwardingContext ". |
0xA002 | Ein Zeiger auf das NetBufferList-Objekt | Ein Zeiger auf das virtuelle Switchobjekt (wenn NON-NULL). | Reserviert (nicht verwendet) | VM-Switch: Der Aufrufer, der NetBufferList als Weiterleitungsdetails angegeben hat, ist nicht 0. Weitere Informationen finden Sie in der Routine "AllocateNetBufferListForwardingContext ". |
0xA003 | Ein Zeiger auf das NetBufferList-Objekt | Ein Zeiger auf das virtuelle Switchobjekt (wenn NON-NULL). | Reserviert (nicht verwendet) | VM-Switch: Der Aufrufer hat eine NetBufferList mit Paketheader oder Routingkontext bereitgestellt, die NULL ist. Weitere Informationen finden Sie unter Paketverwaltungsrichtlinien für den Erweiterbaren Switch-Datenpfad. |
0xA004 | ID des ungültigen Ports | NIC-Index | Ein Zeiger auf das virtuelle Switchobjekt (wenn NON-NULL). | VM-Switch: Der Aufrufer hat eine ungültige Kombination aus Port und NIC-Index angegeben. Weitere Informationen finden Sie unter Hyper-V Extensible Switch Port und Netzwerkadapterstatus. |
0xA005 | Ein Zeiger auf das NetBufferList-Objekt | Ein Zeiger auf die Liste Ziel. | Ein Zeiger auf das virtuelle Switchobjekt (wenn NON-NULL). | VM-Switch: Der Aufrufer hat ein ungültiges Ziel angegeben. Weitere Informationen finden Sie unter AddNetBufferListDestination und UpdateNetBufferListDestinations. |
0xA006 | Ein Zeiger auf das NetBufferList-Objekt | Ein Zeiger auf das virtuelle Switchobjekt (wenn NON-NULL). | Reserviert (nicht verwendet) | VM-Switch: Der Aufrufer hat eine ungültige Quell-NIC oder ein Port-Objekt angegeben. Weitere Informationen finden Sie unter Hyper-V Extensible Switch Port und Netzwerkadapterstatus. |
0xA007 | Ein Zeiger auf das NetBufferList-Objekt | Ein Zeiger auf das virtuelle Switchobjekt (wenn NON-NULL). | Reserviert (nicht verwendet) | VM-Switch: Der Aufrufer hat eine ungültige Zielliste angegeben. Weitere Informationen finden Sie unter AddNetBufferListDestination und UpdateNetBufferListDestinations. |
0xA008 | Übergeordnetes NIC-Objekt | NIC-Index | Ein Zeiger auf das virtuelle Switchobjekt (wenn NON-NULL). | VM-Switch: Versucht, auf eine NIC zu verweisen, wenn dies nicht zulässig ist. Weitere Informationen finden Sie unter Hyper-V Extensible Switch Port und Netzwerkadapterstatus. |
0xA009 | Port, auf den verwiesen wird | Ein Zeiger auf das virtuelle Switchobjekt (wenn NON-NULL) | Reserviert (nicht verwendet) | VM-Switch: Versuchen Sie, auf einen Port zu verweisen, wenn dies nicht zulässig ist. Weitere Informationen finden Sie unter Hyper-V Extensible Switch Port und Netzwerkadapterstatus. |
0xA00A | Ein Zeiger auf das NetBufferList-Objekt | ContextTypeInfo-Objekt | Reserviert (nicht verwendet) | VM-Switch: Fehlerkontext ist bereits festgelegt. Siehe SetNetBufferListSwitchContext. |
0xA00B | Ein Zeiger auf das NetBufferList-Objekt | NDIS_SWITCH_REPORT_FILTERED_NBL_FLAGS_* | Ein Zeiger auf das virtuelle Switchobjekt (wenn NON-NULL) | VM-Switch: Ungültige Richtung für gelöschte NetBufferList. Weitere Informationen finden Sie unter ReportFilteredNetBufferLists. |
0xA00C | Ein Zeiger auf das NetBufferList-Objekt | Wert "Send Flags" | Ein Zeiger auf das virtuelle Switchobjekt (wenn NON-NULL) | VM-Switch: Die NetBufferList-Kette verfügt über mehrere Quellports, wenn NDIS_SEND_FLAGS_SWITCH_SINGLE_SOURCE Flag festgelegt ist. Weitere Informationen finden Sie unter Hyper-V Extensible Switch Send and Receive Flags. |
0xA00D | Ein Zeiger auf das NetBufferList-Objekt | Ein Zeiger auf den Kontext des virtuellen Switches | Ein Zeiger auf das virtuelle Switchobjekt (wenn NON-NULL) | VM-Switch: Mindestens eine NetBufferList in Kette weisen ein ungültiges Ziel auf, wenn NDIS_RECEIVE_FLAGS_SWITCH_DESTINATION_GROUP Flag festgelegt ist. Weitere Informationen finden Sie unter Hyper-V Extensible Switch Send and Receive Flags. |
0xA00E | Ein Zeiger auf das NetBufferLists-Objekt. | Ein Zeiger auf den Kontext des virtuellen Switches. | Ein Zeiger auf das virtuelle Switchobjekt (wenn NON-NULL). | VM-Switch: Versucht, NetBufferList über WNV abzuschließen, wenn VMS_NBL_ROUTING_CONTEXT_FLAG_NO_WNV_PROCESSING Flag festgelegt ist. |
0x00020002 zu 0x00020022 – Verstöße gegen DDI-Complianceregeln
Parameter 1 | Parameter 2 | Parameter 3 | Parameter 4 | Fehlerursache |
---|---|---|---|---|
0x00020002 | Zeiger auf die Zeichenfolge, die die verletzte Regelbedingung beschreibt. | Optionaler Zeiger auf die Regelzustandsvariablen. | Reserviert | Der Treiber hat gegen die DDI-Complianceregel IrqlApcLte verstoßen. Die Regel gibt an, dass der Treiber ObGetObjectSecurity und ObReleaseObjectSecurity nur aufrufen darf, wenn IRQL <= APC_LEVEL. |
0x00020003 | Zeiger auf die Zeichenfolge, die die verletzte Regelbedingung beschreibt. | Optionaler Zeiger auf die Regelzustandsvariablen. | Reserviert | Der Treiber hat gegen die DDI-Complianceregel IrqlDispatch verstoßen. Die IrqlDispatch-Regel gibt an, dass der Treiber bestimmte Routinen nur aufrufen darf, wenn IRQL = DISPATCH_LEVEL |
0x00020004 | Zeiger auf die Zeichenfolge, die die verletzte Regelbedingung beschreibt. | Optionaler Zeiger auf die Regelzustandsvariablen. | Reserviert | Der Treiber hat gegen die DDI-Complianceregel IrqlExAllocatePool verstoßen. Die IrqlExAllocatePool-Regel gibt an, dass der Treiber ExAllocatePoolWithTag und ExAllocatePoolWithTagPriority nur bei IRQL<=DISPATCH_LEVEL aufruft. |
0x00020005 | Zeiger auf die Zeichenfolge, die die verletzte Regelbedingung beschreibt. | Optionaler Zeiger auf die Regelzustandsvariablen. | Reserviert | Der Treiber hat gegen die DDI-Complianceregel IrqlExApcLte1 verstoßen. Die IrqlExApcLte1-Regel gibt an, dass der Treiber „ExAcquireFastMutex“ und „ExTryToAcquireFastMutex“ nur bei IRQL <= APC_LEVEL aufruft. |
0x00020006 | Zeiger auf die Zeichenfolge, die die verletzte Regelbedingung beschreibt. | Optionaler Zeiger auf die Regelzustandsvariablen. | Reserviert | Der Treiber hat gegen die DDI-Complianceregel IrqlExApcLte2 verstoßen. Die IrqlExApcLte2-Regel gibt an, dass der Treiber bestimmte Routinen nur aufruft, wenn IRQL <= APC_LEVEL. |
0x00020007 | Zeiger auf die Zeichenfolge, die die verletzte Regelbedingung beschreibt. | Optionaler Zeiger auf die Regelzustandsvariablen. | Reserviert | Der Treiber hat gegen die DDI-Complianceregel IrqlExApcLte3 verstoßen. Die IrqlExApcLte3-Regel gibt an, dass der Treiber bestimmte Supportroutinen für Führungskräfte nur aufrufen darf, wenn IRQL <= APC_LEVEL. |
0x00020008 | Zeiger auf die Zeichenfolge, die die verletzte Regelbedingung beschreibt. | Optionaler Zeiger auf die Regelzustandsvariablen. | Reserviert | Der Treiber hat gegen die DDI-Complianceregel IrqlExPassive verstoßen. Die IrqlExPassive-Regel gibt an, dass der Treiber bestimmte Supportroutinen für Führungskräfte nur dann aufrufen darf, wenn IRQL = PASSIVE_LEVEL. |
0x00020009 | Zeiger auf die Zeichenfolge, die die verletzte Regelbedingung beschreibt. | Optionaler Zeiger auf die Regelzustandsvariablen. | Reserviert | Der Treiber hat gegen die DDI-Complianceregel IrqlIoApcLte verstoßen. Die IrqlIoApcLte-Regel gibt an, dass der Treiber bestimmte E/A-Managerroutinen nur aufrufen darf, wenn IRQL <= APC_LEVEL. |
0x0002000A | Zeiger auf die Zeichenfolge, die die verletzte Regelbedingung beschreibt. | Optionaler Zeiger auf die Regelzustandsvariablen. | Reserviert | Der Treiber hat gegen die DDI-Complianceregel IrqlIoPassive1 verstoßen. Die IrqlIoPassive1-Regel gibt an, dass der Treiber bestimmte E/A-Managerroutinen nur aufrufen darf, wenn IRQL = PASSIVE_LEVEL. |
0x0002000B | Zeiger auf die Zeichenfolge, die die verletzte Regelbedingung beschreibt. | Optionaler Zeiger auf die Regelzustandsvariablen. | Reserviert | Der Treiber hat gegen die DDI-Complianceregel IrqlIoPassive2 verstoßen. Die IrqlIoPassive2-Regel gibt an, dass der Treiber bestimmte E/A-Managerroutinen nur aufrufen darf, wenn IRQL = PASSIVE_LEVEL. |
0x0002000C | Zeiger auf die Zeichenfolge, die die verletzte Regelbedingung beschreibt. | Optionaler Zeiger auf die Regelzustandsvariablen. | Reserviert | Der Treiber hat gegen die DDI-Complianceregel IrqlIoPassive3 verstoßen. Die IrqlIoPassive3-Regel gibt an, dass der Treiber bestimmte E/A-Managerroutinen nur aufrufen darf, wenn IRQL = PASSIVE_LEVEL. |
0x0002000D | Zeiger auf die Zeichenfolge, die die verletzte Regelbedingung beschreibt. | Optionaler Zeiger auf die Regelzustandsvariablen. | Reserviert | Der Treiber hat gegen die DDI-Complianceregel IrqlIoPassive4 verstoßen. Die IrqlIoPassive4-Regel gibt an, dass der Treiber bestimmte E/A-Managerroutinen nur aufrufen darf, wenn IRQL = PASSIVE_LEVEL. |
0x0002000E | Zeiger auf die Zeichenfolge, die die verletzte Regelbedingung beschreibt. | Optionaler Zeiger auf die Regelzustandsvariablen. | Reserviert | Der Treiber hat gegen die DDI-Complianceregel IrqlIoPassive5 verstoßen. Die IrqlIoPassive5-Regel gibt an, dass der Treiber bestimmte E/A-Managerroutinen nur aufrufen darf, wenn IRQL = PASSIVE_LEVEL. |
0x0002000F | Zeiger auf die Zeichenfolge, die die verletzte Regelbedingung beschreibt. | Optionaler Zeiger auf die Regelzustandsvariablen. | Reserviert | Der Treiber hat gegen die DDI-Complianceregel IrqlKeApcLte1 verstoßen. Die IrqlKeApcLte1-Regel gibt an, dass der Treiber bestimmte Kernelroutinen nur aufrufen darf, wenn IRQL <= APC_LEVEL. |
0x00020010 | Zeiger auf die Zeichenfolge, die die verletzte Regelbedingung beschreibt. | Optionaler Zeiger auf die Regelzustandsvariablen. | Reserviert | Der Treiber hat gegen die DDI-Complianceregel IrqlKeApcLte2 verstoßen. Die IrqlKeApcLte2-Regel gibt an, dass der Treiber bestimmte Kernelroutinen nur aufrufen darf, wenn IRQL <= APC_LEVEL. |
0x00020011 | Zeiger auf die Zeichenfolge, die die verletzte Regelbedingung beschreibt. | Optionaler Zeiger auf die Regelzustandsvariablen. | Reserviert | Der Treiber hat gegen die DDI-Complianceregel IrqlKeDispatchLte verstoßen. Die IrqlKeDispatchLte-Regel gibt an, dass der Treiber bestimmte Kernelroutinen nur aufrufen darf, wenn IRQL <= DISPATCH_LEVEL. |
0x00020015 | Zeiger auf die Zeichenfolge, die die verletzte Regelbedingung beschreibt. | Optionaler Zeiger auf die Regelzustandsvariablen. | Reserviert | Der Treiber hat gegen die DDI-Complianceregel IrqlKeReleaseSpinLock verstoßen. Die IrqlKeReleaseSpinLock-Regel gibt an, dass der Treiber KeReleaseSpinLock nur aufrufen darf, wenn IRQL = DISPATCH_LEVEL. |
0x00020016 | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Optionaler Zeiger auf die Regelzustandsvariablen. | Reserviert | Der Treiber hat gegen die DDI-Konformitätsregel IrqlKeSetEvent verstoßen. Die IrqlKeSetEvent-Regel gibt an, dass die KeSetEvent-Routine nur bei IRQL <= DISPATCH_LEVEL aufgerufen wird, wenn Wait auf FALSE festgelegt ist, und bei IRQL <= APC_LEVEL, wenn Wait auf TRUE festgelegt ist. |
0x00020019 | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Optionaler Zeiger auf die Regelzustandsvariablen. | Reserviert | Der Treiber hat gegen die DDI-Konformitätsregel IrqlMmApcLte verstoßen. Die IrqlMmApcLte-Regel gibt an, dass der Treiber bestimmte Speicher-Manager-Routinen nur aufrufen darf, wenn IRQL <= APC_LEVEL. |
0x0002001A | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Optionaler Zeiger auf die Regelzustandsvariablen. | Reserviert | Der Treiber hat gegen die DDI-Konformitätsregel IrqlMmDispatch verstoßen. Die IrqlMmDispatch-Regel gibt an, dass der Treiber MmFreeContiguousMemory nur aufrufen darf, wenn IRQL = DISPATCH_LEVEL. |
0x0002001B | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Optionaler Zeiger auf die Regelzustandsvariablen. | Reserviert | Der Treiber hat gegen die DDI-Konformitätsregel IrqlObPassive verstoßen. Die IrqlObPassive-Regel gibt an, dass der Treiber ObReferenceObjectByHandle nur aufrufen darf, wenn IRQL = PASSIVE_LEVEL. |
0x0002001C | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Optionaler Zeiger auf die Regelzustandsvariablen. | Reserviert | Der Treiber hat gegen die DDI-Konformitätsregel IrqlPsPassive verstoßen. Die IrqlPsPassive-Regel gibt an, dass der Treiber bestimmte Prozess- und Thread-Manager-Routinen nur aufrufen darf, wenn IRQL = PASSIVE_LEVEL. |
0x0002001D | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Adresse des internen Regelzustands (zweites Argument für !ruleinfo). | Adresse der zusätzlichen Zustände (drittes Argument für !ruleinfo). | Der Treiber hat gegen die DDI-Konformitätsregel IrqlReturn verstoßen. |
0x0002001E | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Optionaler Zeiger auf die Regelzustandsvariablen. | Reserviert | Der Treiber hat gegen die DDI-Konformitätsregel IrqlRtlPassive verstoßen. Die IrqlRtlPassive-Regel gibt an, dass der Treiber RtlDeleteRegistryValue nur aufrufen darf, wenn IRQL = PASSIVE_LEVEL. |
0x0002001F | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Optionaler Zeiger auf die Regelzustandsvariablen. | Reserviert | Der Treiber hat gegen die DDI-Konformitätsregel IrqlZwPassive verstoßen. Die IrqlZwPassive-Regel gibt an, dass der Treiber ZwClose nur aufrufen darf, wenn IRQL = PASSIVE_LEVEL. |
0x00020022 | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Reserviert (nicht verwendet) | Reserviert (nicht verwendet) | Der Treiber hat gegen die DDI-Konformitätsregel IrqlIoDispatch verstoßen. |
0x00020023 | Ein Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Reserviert (nicht verwendet). | Reserviert (nicht verwendet). | Der Treiber hat gegen die DDI-Konformitätsregel IrqlIoRtlZwPassive verstoßen. Die IrqlIoRtlZwPassive-Regel gibt an, dass der Treiber die in der Regel aufgeführten DDIs nur aufruft, wenn er unter IRQL = PASSIVE_LEVEL ausgeführt wird. |
0x00020024 | Ein Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Reserviert (nicht verwendet). | Reserviert (nicht verwendet). | Der Treiber hat gegen die DDI-Konformitätsregel IrqlNtifsApcPassive verstoßen. Die IrqlNtifsApcPassive-Regel gibt an, dass der Treiber die in der Regel aufgeführten DDIs nur aufruft, wenn er entweder unter IRQL = PASSIVE_LEVEL oder irQL <= APC_LEVEL ausgeführt wird. |
0x00020025 | Ein Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Reserviert (nicht verwendet). | Reserviert (nicht verwendet). | Der Treiber hat gegen die microsoft-interne DDI-Complianceregel IrqlKeMore verstoßen. |
0x00040003 zu 0x00043006 – DDI-Complianceregelverstöße
Parameter 1 | Parameter 2 | Parameter 3 | Parameter 4 | Fehlerursache |
---|---|---|---|---|
0x00040003 | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Adresse des internen Regelzustands (zweites Argument für !ruleinfo). | Adresse der zusätzlichen Zustände (drittes Argument für !ruleinfo). | Der Treiber hat gegen die DDI-Konformitätsregel CriticalRegions verstoßen. |
0x00040006 | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Adresse des internen Regelzustands (zweites Argument für !ruleinfo). | Adresse der zusätzlichen Zustände (drittes Argument für !ruleinfo). | Der Treiber hat gegen die DDI-Konformitätsregel QueuedSpinLock verstoßen. |
0x00040007 | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Adresse des internen Regelzustands (zweites Argument für !ruleinfo). | Adresse der zusätzlichen Zustände (drittes Argument für !ruleinfo). | Der Treiber hat gegen die DDI-Konformitätsregel QueuedSpinLockRelease verstoßen. |
0x00040009 | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Adresse des internen Regelzustands (zweites Argument für !ruleinfo). | Adresse der zusätzlichen Zustände (drittes Argument für !ruleinfo). | Der Treiber hat gegen die DDI-Konformitätsregel SpinLock verstoßen. |
0x0004000A | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Adresse des internen Regelzustands (zweites Argument für !ruleinfo) | Adresse der zusätzlichen Zustände (drittes Argument für !ruleinfo). | Der Treiber hat gegen die DDI-Konformitätsregel SpinlockRelease verstoßen. |
0x0004000E | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Adresse des internen Regelzustands (zweites Argument für !ruleinfo). | Adresse der zusätzlichen Zustände (drittes Argument für !ruleinfo). | Der Treiber hat gegen die DDI-Konformitätsregel GuardedRegions verstoßen. |
0x0004100B | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Reserviert (nicht verwendet) | Reserviert (nicht verwendet) | Der Treiber hat gegen die DDI-Konformitätsregel RequestedPowerIrp verstoßen. |
0x0004100F | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Adresse des internen Regelzustands (zweites Argument für !ruleinfo). | Adresse der zusätzlichen Zustände (drittes Argument für !ruleinfo). | Der Treiber hat gegen die DDI-Konformitätsregel IoSetCompletionExCompleteIrp verstoßen. |
0x00043006 | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Reserviert (nicht verwendet) | Reserviert (nicht verwendet) | Der Treiber hat gegen die DDI-Konformitätsregel PnpRemove verstoßen. |
0x00081001 zu 0x00082005 : Verstöße gegen die AvStream-Treiberkonformitätsregeln
Parameter 1 | Parameter 2 | Parameter 3 | Parameter 4 | Fehlerursache |
---|---|---|---|---|
0x00081001 | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Adresse des internen Regelzustands (zweites Argument für !ruleinfo). | Adresse der zusätzlichen Zustände (drittes Argument für !ruleinfo). | Der Treiber hat gegen die DDI-Konformitätsregel KsDeviceMutex verstoßen. |
0x00081002 | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Adresse des internen Regelzustands (zweites Argument für !ruleinfo). | Adresse der zusätzlichen Zustände (drittes Argument für !ruleinfo). | Der Treiber hat gegen die DDI-Konformitätsregel KsStreamPointerClone verstoßen. |
0x00081003 | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Reserviert (nicht verwendet) | Reserviert (nicht verwendet) | Der Treiber hat gegen die DDI-Konformitätsregel KsStreamPointerLock verstoßen. |
0x00081004 | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Adresse des internen Regelzustands (zweites Argument für !ruleinfo). | Adresse der zusätzlichen Zustände (drittes Argument für !ruleinfo). | Der Treiber hat gegen die DDI-Konformitätsregel KsStreamPointerUnlock verstoßen. |
0x00081005 | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Reserviert (nicht verwendet) | Reserviert (nicht verwendet) | Der Treiber hat gegen die DDI-Konformitätsregel KsCallbackReturn verstoßen. |
0x00081006 | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Adresse des internen Regelzustands (zweites Argument für !ruleinfo). | Adresse der zusätzlichen Zustände (drittes Argument für !ruleinfo). | Der Treiber hat gegen die DDI-Konformitätsregel KsIrqlDeviceCallbacks verstoßen. |
0x00081007 | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Adresse des internen Regelzustands (zweites Argument für !ruleinfo). | Adresse der zusätzlichen Zustände (drittes Argument für !ruleinfo). | Der Treiber hat gegen die DDI-Konformitätsregel KsIrqlFilterCallbacks verstoßen. |
0x00081008 | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Adresse des internen Regelzustands (zweites Argument für !ruleinfo). | Adresse der zusätzlichen Zustände (drittes Argument für !ruleinfo). | Der Treiber hat gegen die DDI-Konformitätsregel KsIrqlPinCallbacks verstoßen. |
0x00081009 | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Reserviert (nicht verwendet) | Reserviert (nicht verwendet) | Der Treiber hat gegen die DDI-Konformitätsregel KsIrqlDDIs verstoßen. |
0x0008100A | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Adresse des internen Regelzustands (zweites Argument für !ruleinfo). | Adresse der zusätzlichen Zustände (drittes Argument für !ruleinfo). | Der Treiber hat gegen die DDI-Konformitätsregel KsFilterMutex verstoßen. |
0x0008100B | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Adresse des internen Regelzustands (zweites Argument für !ruleinfo). | Adresse der zusätzlichen Zustände (drittes Argument für !ruleinfo). | Der Treiber hat gegen die DDI-Konformitätsregel KsProcessingMutex verstoßen. |
0x0008100C | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Adresse des internen Regelzustands (zweites Argument für !ruleinfo). | Adresse der zusätzlichen Zustände (drittes Argument für !ruleinfo). | Der Treiber hat gegen die DDI-Konformitätsregel KsInvalidStreamPointer verstoßen. |
0x00082001 | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Adresse des internen Regelzustands (zweites Argument für !ruleinfo). | Adresse der zusätzlichen Zustände (drittes Argument für !ruleinfo). | Der Treiber hat gegen die DDI-Konformitätsregel KsTimedPinSetDeviceState verstoßen. |
0x00082002 | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Adresse des internen Regelzustands (zweites Argument für !ruleinfo). | Adresse der zusätzlichen Zustände (drittes Argument für !ruleinfo). | Der Treiber hat gegen die DDI-Konformitätsregel KsTimedDeviceCallbacks verstoßen. |
0x00082003 | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Adresse des internen Regelzustands (zweites Argument für !ruleinfo). | Adresse der zusätzlichen Zustände (drittes Argument für !ruleinfo). | Der Treiber hat gegen die DDI-Konformitätsregel KsTimedFilterCallbacks verstoßen. |
0x00082004 | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Adresse des internen Regelzustands (zweites Argument für !ruleinfo). | Adresse der zusätzlichen Zustände (drittes Argument für !ruleinfo). | Der Treiber hat gegen die DDI-Konformitätsregel KsTimedPinCallbacks verstoßen. |
0x00082005 | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Adresse des internen Regelzustands (zweites Argument für !ruleinfo). | Adresse der zusätzlichen Zustände (drittes Argument für !ruleinfo). | Der Treiber hat gegen die DDI-Konformitätsregel KsTimedProcessingMutex verstoßen. |
0x00091001 zu 0x0009400C – Verstöße gegen die NDIS-DDI-Konformitätsregel
Parameter 1 | Parameter 2 | Parameter 3 | Parameter 4 | Fehlerursache |
---|---|---|---|---|
0x00091001 | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Adresse des internen Regelzustands (zweites Argument für !ruleinfo). | Adresse der zusätzlichen Zustände (drittes Argument für !ruleinfo). | Der Treiber hat gegen die DDI-Konformitätsregel NdisOidComplete verstoßen. |
0x00091002 | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Adresse des internen Regelzustands (zweites Argument für !ruleinfo). | Adresse der zusätzlichen Zustände (drittes Argument für !ruleinfo). | Der Treiber hat gegen die DDI-Konformitätsregel NdisOidDoubleComplete verstoßen. |
0x0009100E | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Adresse des internen Regelzustands (zweites Argument für !ruleinfo). | Adresse der zusätzlichen Zustände (drittes Argument für !ruleinfo). | Der Treiber hat gegen die DDI-Konformitätsregel NdisOidDoubleRequest verstoßen. |
0x00092003 | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Adresse des internen Regelzustands (zweites Argument für !ruleinfo). | Adresse der zusätzlichen Zustände (drittes Argument für !ruleinfo). | Der Treiber hat gegen die NDIS/WIFI-Überprüfungsregel NdisTimedOidComplete verstoßen. |
0x0009200D | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Adresse des internen Regelzustands (zweites Argument für !ruleinfo). | Adresse der zusätzlichen Zustände (drittes Argument für !ruleinfo). | Der Treiber hat gegen die NDIS/WIFI-Überprüfungsregel NdisTimedDataSend verstoßen. |
0x0009200F | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Adresse des internen Regelzustands (zweites Argument für !ruleinfo). | Adresse der zusätzlichen Zustände (drittes Argument für !ruleinfo). | Der Treiber hat gegen die NDIS/WIFI-Überprüfungsregel NdisTimedDataHang verstoßen. |
0x00092010 | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Adresse des internen Regelzustands (zweites Argument für !ruleinfo). | Adresse der zusätzlichen Zustände (drittes Argument für !ruleinfo). | Der Treiber hat gegen die NDIS/WIFI-Überprüfungsregel NdisFilterTimedPauseComplete verstoßen. |
0x00092011 | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Adresse des internen Regelzustands (zweites Argument für !ruleinfo). | Adresse der zusätzlichen Zustände (drittes Argument für !ruleinfo). | Der Treiber hat gegen die NDIS/WIFI-Überprüfungsregel NdisFilterTimedDataSend verstoßen. |
0x00092012 | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Adresse des internen Regelzustands (zweites Argument für !ruleinfo). | Adresse der zusätzlichen Zustände (drittes Argument für !ruleinfo). | Der Treiber hat gegen die NDIS/WIFI-Überprüfungsregel NdisFilterTimedDataReceive verstoßen. |
0x00093004 | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Adresse des internen Regelzustands (zweites Argument für !ruleinfo). | Adresse der zusätzlichen Zustände (drittes Argument für !ruleinfo). | Der Treiber hat gegen die NDIS/WIFI-Überprüfungsregel WlanAssociation verstoßen. |
0x00093005 | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Adresse des internen Regelzustands (zweites Argument für !ruleinfo). | Adresse der zusätzlichen Zustände (drittes Argument für !ruleinfo). | Der Treiber hat gegen die NDIS/WIFI-Überprüfungsregel WlanConnectionRoaming verstoßen. |
0x00093006 | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Adresse des internen Regelzustands (zweites Argument für !ruleinfo). | Adresse der zusätzlichen Zustände (drittes Argument für !ruleinfo). | Der Treiber hat gegen die NDIS/WIFI-Überprüfungsregel WlanDisassociation verstoßen. |
0x00093101 | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Reserviert (nicht verwendet) | Reserviert (nicht verwendet) | Der Treiber hat gegen die NDIS/WIFI-Überprüfungsregel WlanAssert verstoßen. |
0x00094007 | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Adresse des internen Regelzustands (zweites Argument für !ruleinfo). | Adresse der zusätzlichen Zustände (drittes Argument für !ruleinfo). | Der Treiber hat gegen die NDIS/WIFI-Überprüfungsregel WlanTimedAssociation verstoßen. |
0x00094008 | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Adresse des internen Regelzustands (zweites Argument für !ruleinfo). | Adresse der zusätzlichen Zustände (drittes Argument für !ruleinfo). | Der Treiber hat gegen die NDIS/WIFI-Überprüfungsregel WlanTimedConnectionRoaming verstoßen. |
0x00094009 | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Adresse des internen Regelzustands (zweites Argument für !ruleinfo). | Adresse der zusätzlichen Zustände (drittes Argument für !ruleinfo). | Der Treiber hat gegen die NDIS/WIFI-Überprüfungsregel WlanTimedConnectRequest verstoßen. |
0x0009400B | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Adresse des internen Regelzustands (zweites Argument für !ruleinfo). | Adresse der zusätzlichen Zustände (drittes Argument für !ruleinfo). | Der Treiber hat gegen die NDIS/WIFI-Überprüfungsregel WlanTimedLinkQuality verstoßen. |
0x0009400C | Zeiger auf die Zeichenfolge, die die regelwidrige Bedingung beschreibt. | Adresse des internen Regelzustands (zweites Argument für !ruleinfo). | Adresse der zusätzlichen Zustände (drittes Argument für !ruleinfo). | Der Treiber hat gegen die NDIS/WIFI-Überprüfungsregel WlanTimedScan verstoßen. |
Ursache
Eine Beschreibung der Ursache finden Sie in der Beschreibung der einzelnen Codes im Abschnitt Parameter. Weitere Informationen erhalten Sie mithilfe der Erweiterung !analyze -v .
Lösung
Diese Fehlerüberprüfung kann nur auftreten, wenn driver verifier angewiesen wurde, einen oder mehrere Treiber zu überwachen. Wenn Sie die Treiberüberprüfung nicht verwenden möchten, sollten Sie ihn deaktivieren. Sie können auch erwägen, den Treiber zu entfernen, der dieses Problem verursacht hat.
Wenn Sie der Treiberschreiber sind, verwenden Sie die Informationen, die sie durch diese Fehlerüberprüfung erhalten haben, um die Fehler in Ihrem Code zu beheben.
Ausführliche Informationen zur Treiberüberprüfung finden Sie unter Driver Verifier.
Hinweise
Die _POOL_TYPE Codes werden in Ntddk.h aufgelistet. Insbesondere gibt 0 (Null) einen nicht ausgelagerten Pool und 1 (eins) den ausgelagerten Pool an.
(Windows 8 und höheren Versionen von Windows) Wenn die DDI-Konformitätsüberprüfung eine Fehlerprüfung verursacht, führen Sie statische Treiberüberprüfung für den Treiberquellcode aus, und geben Sie die DDI-Konformitätsregel (identifiziert durch den Parameter 1-Wert) an, die die Fehlerprüfung verursacht hat. Static Driver Verifier kann Ihnen helfen, die Ursache des Problems in Ihrem Quellcode zu finden.
Siehe auch
Behandeln einer Fehlerüberprüfung, wenn die Treiberüberprüfung aktiviert ist