Condividi tramite


Controllo bug 0xC9: DRIVER_VERIFIER_IOMANAGER_VIOLATION

Il controllo dei bug DRIVER_VERIFIER_IOMANAGER_VIOLATION ha un valore di 0x000000C9. Si tratta del codice di controllo dei bug per tutte le violazioni di verifica dell'I/O del driver.

Importante

Questo articolo è destinato ai programmatori. Se si è un cliente che ha ricevuto un codice di errore della schermata blu durante l'uso del computer, vedere Risolvere gli errori della schermata blu.

parametri DRIVER_VERIFIER_IOMANAGER_VIOLATION

Quando Verifica driver è attiva e viene selezionata la verifica di I/O, verranno eseguite varie violazioni di I/O. Il parametro 1 identifica il tipo di violazione.

Parametro 1 Parametro 2 Parametro 3 Parametro 4 Causa dell'errore

0x01

Indirizzo di IRP liberato

0

0

Il driver ha tentato di liberare un oggetto il cui tipo non è IO_TYPE_IRP.

0x02

Indirizzo di IRP liberato

0

0

Il driver ha tentato di liberare un IRP ancora associato a un thread.

0x03

Indirizzo di IRP inviato

0

0

Il driver ha passato IoCallDriver a un tipo IRP non uguale a IRP_TYPE.

0x04

Indirizzo dell'oggetto dispositivo

0

0

Il driver ha passato IoCallDriver a un oggetto dispositivo non valido.

0x05

Indirizzo dell'oggetto dispositivo associato al driver che causa un'offesa

IRQL prima di IoCallDriver

IRQL dopo IoCallDriver

IrQL modificato durante una chiamata alla routine di invio del driver.

0x06

Stato di IRP

Indirizzo di IRP completato

0

Il driver denominato IoCompleteRequest con stato contrassegnato come in sospeso (o uguale a -1).

0x07

Indirizzo della routine di annullamento

Indirizzo di IRP completato

0

Il driver ha chiamato IoCompleteRequest mentre la routine di annullamento è ancora stata impostata.

0x08

Indirizzo dell'oggetto dispositivo

Codice della funzione principale IRP

Codice di stato dell'eccezione

Il driver ha passato IoBuildAsynchronousFsdRequest un buffer non valido.

0x09

Indirizzo dell'oggetto dispositivo

Codice di controllo di I/O

Codice di stato dell'eccezione

Il driver ha passato IoBuildDeviceIoControlRequest un buffer non valido.

0x10

IRQL corrente

Prenotato

Prenotato

IoCallDriver è stato chiamato sopra DISPATCH_LEVEL.

0x11

Indirizzo di routine dispatch I/O rapido del driver

IRQL prima di chiamare la routine dispatch del driver

IRQL corrente

IoCallDriver è stato chiamato sopra DISPATCH_LEVEL.

0x12

Indirizzo di routine dell'invio del driver

IRQL prima di chiamare la routine dispatch del driver

IRQL corrente

IoCallDriver è stato chiamato sopra DISPATCH_LEVEL.

0x0A

Indirizzo dell'oggetto dispositivo

0

0

Il driver ha passato IoInitializeTimer a un oggetto dispositivo con un timer già inizializzato.

0x0C

Indirizzo del blocco di stato di I/O

0

0

Il driver ha passato un blocco di stato di I/O a un IRP, ma questo blocco viene allocato in uno stack che non è già stato eseguito oltre quel punto.

0x0D

Indirizzo dell'oggetto evento utente

0

0

Il driver ha passato un evento utente a un IRP, ma questo evento viene allocato in uno stack che non è già stato eseguito oltre quel punto.

0x0E

IRQL corrente

Indirizzo di IRP

0

Il driver denominato IoCompleteRequest con irQL > DISPATCH_LEVEL.

0x0F

Indirizzo dell'oggetto dispositivo a cui viene inviato l'IRP

Puntatore all'IRP

Puntatore all'oggetto file

Il driver ha inviato una richiesta di creazione con un oggetto file chiuso o che ne ha annullato l'apertura.

Oltre agli errori indicati nella tabella precedente, esistono diversi errori di verifica di I/O che causeranno l'arresto del sistema da parte di Driver Verifier, ma che non sono effettivamente controlli di bug.

Questi errori causano la visualizzazione dei messaggi nella schermata blu, in un file di dump di arresto anomalo del sistema e in un debugger del kernel. Questi messaggi verranno visualizzati in modo diverso in ognuna di queste posizioni. Quando si verificano questi errori, il codice di controllo del bug esadecimale 0xC9 e la stringa di controllo dei bug DRIVER_VERIFIER_IOMANAGER_VIOLATION non vengono visualizzate nella schermata blu o nel debugger, anche se verranno visualizzate in un file di dump di arresto anomalo del sistema.

Nella schermata blu verranno visualizzati i dati seguenti:

  • Messaggio ERRORE DI VERIFICA DEL SISTEMA IO.

  • Messaggio ERRORE WDM DRIVER XXX, dove XXX è un codice esadecimale che rappresenta l'errore specifico. Per un elenco dei codici di errore di I/O e dei relativi significati, vedere la tabella seguente.

  • Nome del driver che ha causato l'errore.

  • In genere, l'indirizzo nel codice del driver in cui è stato rilevato l'errore (parametro 2).

Se è stato abilitato un dump di arresto anomalo in modalità kernel, nel file di dump dell'arresto anomalo del sistema verranno visualizzate le informazioni seguenti:

  • Messaggio BugCheck 0xC9 (DRIVER_VERIFIER_IOMANAGER_VIOLATION).

  • Codice di errore di I/O esadecimale. Per un elenco dei codici di errore di I/O e dei relativi significati, vedere la tabella seguente.

  • In genere, l'indirizzo nel codice del driver in cui è stato rilevato l'errore (parametro 2).

Se un debugger del kernel è collegato al sistema che ha causato questa violazione, le informazioni seguenti verranno inviate al debugger:

  • Messaggio WDM DRIVER ERROR, insieme a una valutazione della gravità dell'errore.

  • Nome del driver che ha causato l'errore.

  • Stringa descrittiva che spiega la causa dell'errore. Spesso vengono passate informazioni aggiuntive, ad esempio un puntatore all'IRP o un puntatore all'oggetto dispositivo o informazioni IRQL. Per un elenco di queste stringhe descrittive e delle informazioni aggiuntive specificate, vedere la tabella seguente.

  • Query per un'ulteriore azione. Le risposte possibili sono b (break), i (ignore), z (zap), r (remove) o d (disable). Indicare al sistema operativo di continuare consente di vedere cosa accadrebbe "verso il basso" se questo errore non si fosse verificato. Naturalmente, questo spesso causerà controlli di bug aggiuntivi. L'opzione "zap" rimuoverà effettivamente il punto di interruzione che ha causato l'errore da individuare.

Nota Nessun altro controllo di bug può essere ignorato in questo modo. Solo questo tipo di errori di verifica di I/O può essere ignorato e anche questi errori possono essere ignorati solo se è collegato un debugger del kernel.

Nella tabella seguente sono elencati gli errori di verifica di I/O che possono essere visualizzati.

Codice di errore di I/O Gravità Causa dell'errore

0x200

Sconosciuto

Questo codice copre tutti gli errori di verifica di I/O sconosciuti.

0x201

Errore irreversibile

Un dispositivo sta eliminando se stesso mentre è presente un altro dispositivo sotto di esso nello stack di driver. Questo può essere dovuto al fatto che il chiamante ha dimenticato di chiamare prima IoDetachDevice o il driver inferiore potrebbe aver eliminato erroneamente se stesso.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

0x202

Errore irreversibile

Un driver ha tentato di scollegarsi da un oggetto dispositivo che non è collegato ad alcun elemento. Questo problema può verificarsi se lo scollegamento è stato chiamato due volte sullo stesso oggetto dispositivo.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo dell'oggetto dispositivo.

0x203

Errore irreversibile

Un driver ha chiamato IoCallDriver senza impostare la routine di annullamento in IRP su NULL.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

0x204

Errore irreversibile

Il chiamante ha passato NULL come oggetto dispositivo. Questo è fatale.

Param 2 - Riservato

Param 3 - Riservato

0x205

Errore irreversibile

Il chiamante sta inoltrando un IRP attualmente in coda sotto di esso. Il codice che gestisce i runtime di integrazione che restituiscono STATUS_PENDING in questo driver sembra essere interrotto.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

0x206

Errore irreversibile

Il chiamante ha inoltrato erroneamente un IRP (campo di controllo non azzerato). Il driver deve usare IoCopyCurrentIrpStackLocationToNext o IoSkipCurrentIrpStackLocation.

Param 2 - Riservato

Param 3 - Riservato

0x207

Errore irreversibile

Il chiamante ha copiato manualmente lo stack e ha copiato inavvertitamente la routine di completamento del livello superiore. Il driver deve usare IoCopyCurrentIrpStackLocationToNext.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

0x208

Errore irreversibile

Questo IRP sta per esaurire le posizioni dello stack. Qualcuno potrebbe aver inoltrato questo IRP da un altro stack.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

0x209

Errore irreversibile

Il chiamante sta completando un IRP attualmente in coda sotto di esso. Il codice che gestisce i runtime di integrazione che restituiscono STATUS_PENDING in questo driver sembra essere interrotto.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

0x20A

Errore irreversibile

Il chiamante di IoFreeIrp libera un IRP ancora in uso.

Param 2 - Riservato

Param 3 - Riservato

0x20B

Errore irreversibile

Il chiamante di IoFreeIrp libera un IRP ancora in uso.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

0x20C

Errore irreversibile

Il chiamante di IoFreeIrp libera un IRP ancora in coda su un thread.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

0x20D

Errore irreversibile

Il chiamante di IoInitializeIrp ha passato un IRP allocato con IoAllocateIrp. Questo è illegale e non necessario, e ha causato una perdita di quota. Controllare la documentazione relativa a IoReuseIrp se l'IRP è in fase di riciclo.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

0x20E

Errore non irreversibile

Uno stato di IRP PNP non è valido. Qualsiasi IRP PNP deve avere lo stato inizializzato per STATUS_NOT_SUPPORTED.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

0x20F

Errore non irreversibile

Uno stato di Power IRP non è valido. Per STATUS_NOT_SUPPORTED deve essere stato inizializzato qualsiasi provider di risorse di Power IRP.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

0x210

Errore non irreversibile

Uno stato di IRP WMI non è valido. Qualsiasi IRP WMI deve avere lo stato inizializzato per STATUS_NOT_SUPPORTED.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

0x211

Errore non irreversibile

Il chiamante ha inoltrato un IRP ignorando un oggetto dispositivo nello stack. Il chiamante sta probabilmente inviando IP al PDO anziché al dispositivo restituito da IoAttachDeviceToDeviceToDeviceStack.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

0x212

Errore non irreversibile

Il chiamante ha spazzatura o non ha copiato correttamente lo stack di IRP.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

0x213

Errore non irreversibile

Il chiamante ha modificato il campo di stato di un IRP che non riconosce.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

0x214

Errore non irreversibile

Il chiamante ha modificato il campo informativo di un IRP che non riconosce.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

0x215

Errore non irreversibile

Uno stato IRP non riuscito non STATUS_NOT_SUPPORTED per IRP_MJ_PNP viene passato allo stack. I runtime di integrazione PNP non riusciti devono essere completati.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

0x216

Errore non irreversibile

Lo stato IRP_MJ_PNP impostato in precedenza è stato convertito in STATUS_NOT_SUPPORTED. Questo stato di errore è riservato per l'uso da parte del sistema operativo. I driver non possono avere esito negativo in un IRP PnP con questo valore.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

0x217

Errore non irreversibile

Il driver non ha gestito un IRP obbligatorio. Il driver deve aggiornare lo stato dell'IRP per indicare se è stato gestito o meno.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

0x218

Errore non irreversibile

Il driver ha risposto a un IRP riservato ad altri oggetti dispositivo altrove nello stack.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

0x219

Errore non irreversibile

Uno stato IRP STATUS_NOT_SUPPORTED non riuscito per IRP_MJ_POWER viene passato allo stack non riuscito. I runtime di integrazione POWER non riusciti devono essere completati.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

0x21A

Errore non irreversibile

Lo stato IRP_MJ_POWER impostato in precedenza è stato convertito in STATUS_NOT_SUPPORTED.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

0x21B

Errore non irreversibile

Un driver ha restituito uno stato sospetto. Questo è probabilmente dovuto a un bug di variabile non inizializzato nel driver.

Param 3 - Indirizzo IRP.

0x21C

Avviso

Il chiamante ha copiato lo stack IRP ma non ha impostato una routine di completamento. Questo è inefficiente: usare invece IoSkipCurrentIrpStackLocation .

Param 2 - Riservato

Param 3 - Riservato

0x21D

Errore irreversibile

Un gestore di invio IRP non è stato disconnesso correttamente dallo stack sottostante al momento della ricezione di un IRP di rimozione.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

Param 4 - Indirizzo dell'oggetto dispositivo.

0x21E

Errore irreversibile

Un gestore dispatch IRP non ha eliminato correttamente il relativo oggetto dispositivo quando riceve un IRP di rimozione.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

Param 4 - Indirizzo dell'oggetto dispositivo.

0x21F

Errore non irreversibile

Un driver non ha compilato una routine di invio per una funzione principale IRP richiesta.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

0x220

Errore non irreversibile

IRP_MJ_SYSTEM_CONTROL è stato completato da un utente diverso da ProviderId. Questo IRP dovrebbe essere stato completato in precedenza o dovrebbe essere stato passato.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

Param 4 - ProviderId.

0x221

Errore irreversibile

Un gestore dispatch IRP per un PDO ha eliminato il relativo oggetto dispositivo, ma l'hardware non è stato segnalato come mancante in una query di relazioni tra bus.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

Param 4 - Indirizzo dell'oggetto dispositivo.

0x222

Errore irreversibile

Il gestore di invio IRP di un filtro del bus si è scollegato quando riceve un IRP di rimozione quando il PDO è ancora attivo. I filtri del bus devono essere puliti nei callback FastIoDetach .

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

Param 4 - Indirizzo dell'oggetto dispositivo.

0x223

Errore irreversibile

Un gestore di invio IRP per un filtro bus ha eliminato il relativo oggetto dispositivo, ma il PDO è ancora presente. I filtri del bus devono essere puliti nei callback FastIoDetach .

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

Param 4 - Indirizzo dell'oggetto dispositivo.

0x224

Errore irreversibile

Un gestore dispatch IRP ha restituito uno stato incoerente con il campo IoStatus.Status di IRP.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

Param 4 : codice di stato previsto.

0x225

Errore non irreversibile

Un gestore di invio IRP ha restituito uno stato non valido (0xFFFFFFFF). Ciò è probabilmente dovuto a una variabile dello stack non inizializzata. Per eseguire il debug di questo errore, usare il comando ln (List Nearest Symbols) con l'indirizzo specificato.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

Param 4 - Codice di stato.

0x226

Errore irreversibile

Un gestore di invio IRP è stato restituito senza passare o completare l'IRP oppure qualcuno ha dimenticato di restituire STATUS_PENDING.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

0x227

Errore irreversibile

Una routine di completamento di IRP è in codice di paging. (Questo non è mai consentito.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

0x228

Errore non irreversibile

La routine di completamento di un driver non ha contrassegnato l'IRP in sospeso se il campo PendingReturned è stato impostato nell'IRP passato. Ciò può causare il blocco di Windows, soprattutto se viene restituito un errore dallo stack.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

0x229

Errore irreversibile

È stata impostata una routine di annullamento per un IRP attualmente in fase di elaborazione da parte dei driver nello stack, possibilmente stomping della routine di annullamento.

Param 2 - Riservato.

Param 3 - Riservato.

0x22A

Errore non irreversibile

L'oggetto dispositivo fisico (PDO) non ha risposto a un IRP richiesto.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

0x22B

Errore non irreversibile

L'oggetto dispositivo fisico (PDO) ha dimenticato di compilare l'elenco delle relazioni del dispositivo con il PDO per la query TargetDeviceRelation .

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

0x22C

Errore irreversibile

Il codice che implementa la query TargetDeviceRelation non ha chiamato ObReferenceObject nel PDO.

Param 2 - Riservato.

Param 3 - Riservato.

0x22D

Errore non irreversibile

Il chiamante ha completato un IRP_MJ_PNP non ha capito invece di passarlo.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

0x22E

Errore non irreversibile

Il chiamante ha completato un IRP_MJ_PNP riuscito invece di passarlo.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

0x22F

Errore non irreversibile

Il chiamante ha completato un IRP_MJ_PNP non toccato (invece di passare l'IRP verso il basso) o non PDO non ha superato l'IRP usando il valore non valido di STATUS_NOT_SUPPORTED.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

0x230

Errore non irreversibile

Il chiamante ha completato un IRP_MJ_POWER non ha capito invece di passarlo.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

0x231

Errore irreversibile

Il chiamante ha completato un IRP_MJ_POWER riuscito invece di passarlo in basso.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

0x232

Errore non irreversibile

Il chiamante ha completato un IRP_MJ_POWER non toccato (invece di passare l'IRP verso il basso) o non PDO ha fallito l'IRP usando il valore illegale di STATUS_NOT_SUPPORTED.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

0x233

Errore non irreversibile

Il campo della versione della struttura delle funzionalità di query in una funzionalità di query IRP non è stato inizializzato correttamente.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

0x234

Errore non irreversibile

Il campo delle dimensioni della struttura delle funzionalità di query in una funzionalità di query IRP non è stato inizializzato correttamente.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

0x235

Errore non irreversibile

Il campo indirizzo della struttura delle funzionalità di query in una funzionalità di query IRP non è stato inizializzato correttamente su -1.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

0x236

Errore non irreversibile

Il campo Numero interfaccia utente della struttura delle funzionalità di query in una funzionalità di query IRP non è stato inizializzato correttamente su -1.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

0x237

Errore irreversibile

Un driver ha inviato un IRP limitato solo all'uso del sistema.

Param 2 - Riservato.

Param 3 - Riservato.

0x238

Avviso

Il chiamante di IoInitializeIrp ha passato un IRP allocato con IoAllocateIrp. Questo è illegale, non necessario e influisce negativamente sulle prestazioni in uso normale. Se questo IRP viene riciclato, vedere IoReuseIrp in Windows Driver Kit.

Param 2 - Riservato.

Param 3 - Riservato.

0x239

Avviso

Il chiamante di IoCompleteRequest sta completando un IRP che non è mai stato inoltrato tramite una chiamata a IoCallDriver o PoCallDriver. Potrebbe trattarsi di un bug.

Param 2 - Riservato.

Param 3 - Riservato.

0x23A

Errore irreversibile

Un driver ha inoltrato un IRP a un IRQL non valido per questo codice principale.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

0x23B

Errore non irreversibile

Il chiamante ha modificato il campo di stato di un IRP che non riconosce.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

Nella tabella seguente sono elencati altri errori di verifica di I/O che possono essere visualizzati. Questi errori vengono visualizzati quando viene attivata la verifica di I/O avanzata. Per altre informazioni, vedere Verifica avanzata di I/O.

Codice di errore di I/O Gravità Causa dell'errore

0x23C

Errore irreversibile

Un driver ha completato un IRP senza impostare la routine di annullamento in IRP su NULL.

Param 2 - Riservato.

Param 3 - Riservato.

0x23D

Errore non irreversibile

Un driver ha restituito STATUS_PENDING ma non ha contrassegnato l'IRP in sospeso tramite una chiamata a IoMarkIrpPending.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

Param 4 - Codice di stato.

0x23E

Errore non irreversibile

Un driver ha contrassegnato un IRP in sospeso ma non ha restituito STATUS_PENDING.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

Param 4 - Codice di stato.

0x23F

Errore irreversibile

Un driver non ha ereditato il bit DO_POWER_PAGABLE dallo stack a cui è collegato.

Param 2 - Riservato.

Param 3 - Riservato.

0x240

Errore irreversibile

Un driver sta tentando di eliminare un oggetto dispositivo che è già stato eliminato tramite una chiamata precedente a IoDeleteDevice.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 2 - Riservato.

Param 3 - Riservato.

0x241

Errore irreversibile

Un driver ha scollegato l'oggetto dispositivo durante una rimozione a sorpresa di IRP.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

Param 4 - Indirizzo dell'oggetto dispositivo.

0x242

Errore irreversibile

Un driver ha eliminato il relativo oggetto dispositivo durante una rimozione a sorpresa di IRP.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

Param 4 - Indirizzo dell'oggetto dispositivo.

0x243

Errore irreversibile

Un driver non è riuscito a cancellare il flag di DO_DEVICE_INITIALIZING alla fine di AddDevice.

Param 2 - Riservato.

Param 3 - Riservato.

Param 4 -

0x244

Errore irreversibile

Un driver non ha copiato il DO_BUFFERED_IO o il flag DO_DIRECT_IO dall'oggetto dispositivo a cui è collegato.

Param 2 - Riservato.

Param 3 - Riservato.

0x245

Errore irreversibile

Un driver ha impostato sia i flag DO_BUFFERED_IO che i flag di DO_DIRECT_IO. Questi flag si escludono a vicenda.

Param 2 - Riservato.

Param 3 - Riservato.

0x246

Errore irreversibile

Un driver non è riuscito a copiare il campo DeviceType dall'oggetto dispositivo a cui è collegato.

Param 2 - Riservato.

Param 3 - Riservato.

0x247

Errore irreversibile

Param 2 - Riservato.

Param 3 - Riservato.

Un driver non è riuscito a un IRP che non può essere legalmente non riuscito.

0x248

Errore irreversibile

Un driver ha aggiunto un oggetto dispositivo che non è un PDO a una query di relazioni tra dispositivi.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

Param 4 - Indirizzo dell'oggetto dispositivo.

0x249

Errore non irreversibile

Un driver ha enumerato due PDO figlio che hanno restituito id dispositivo identici.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Primo indirizzo dell'oggetto dispositivo.

Param 4 - Secondo indirizzo dell'oggetto dispositivo.

0x24A

Errore irreversibile

Un driver ha erroneamente chiamato una funzione di I/O di file con IRQL non uguale a PASSIVE_LEVEL.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Riservato.

Param 4 - Riservato.

0x24B

Errore irreversibile

Un driver ha completato una richiesta IRP_MN_QUERY_DEVICE_RELATIONS di tipo TargetDeviceRelation come riuscita, ma non ha compilato correttamente la richiesta o inoltrato l'IRP allo stack hardware sottostante.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo dell'oggetto dispositivo.

0x24C

Errore non irreversibile

Un driver ha restituito STATUS_PENDING ma non ha contrassegnato l'IRP in sospeso da una chiamata a IoMarkIrpPending.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

Param 4 - Codice di stato.

0x24D

Errore irreversibile

Un driver ha passato un oggetto dispositivo non valido a una funzione che richiede un PDO.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

Param 4 - Indirizzo dell'oggetto dispositivo.

0x300

Errore non irreversibile

Un driver ha restituito uno stato sospetto. Questo è probabilmente dovuto a un bug di variabile non inizializzato nel driver.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

Param 4 : codice di stato sospetto.

0x301

Errore non irreversibile

Un driver ha inoltrato un IRP in IRQL > DISPATCH_LEVEL.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

Param 4 - Valore IRQL non corretto

0x302

Errore non irreversibile

Un driver ha inoltrato un IRP in IRQL > = APC_LEVEL.

Per completare questa richiesta, gestione I/O dovrà accodare un APC. L'APC non sarà in grado di eseguire perché il chiamante è già a livello APC, quindi è probabile che il chiamante sia deadlock.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

Param 4 - Valore IRQL non corretto.

0x306

Errore non irreversibile

Il driver sta completando una richiesta IRP_MJ_PNP (principale) e IRP_MN_REMOVE_DEVICE (secondaria) con un codice di stato di errore.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

0x307

Errore non irreversibile

Il driver ha inviato una richiesta di I/O con un evento già segnalato e ha ricevuto una risposta STATUS_PENDING. Ciò può comportare la rimozione prima del completamento dell'I/O.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

0x310

Errore non irreversibile

Il driver sta reinizializzando un IRP ancora in uso.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

0x311

Errore non irreversibile

Il driver sta reinizializzando un IRP creato con IoMakeAssociatedIrp, IoBuildAsynchronousFsdRequest, IoBuildSynchronousFsdRequest, IoBuildDeviceIoControlRequest.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

0x312

Errore non irreversibile

Il chiamante ha fornito al campo Informazioni sullo stato IRP con un valore maggiore della sezione di output del buffer di sistema.

Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore.

Param 3 - Indirizzo IRP.

Causa

Per una descrizione della causa, vedere la descrizione di ogni codice nella sezione Parametri.

Risoluzione

Questo controllo di bug può verificarsi solo quando è stato richiesto di monitorare uno o più driver. Se non si intende usare Driver Verifier, è consigliabile disattivarlo. Per altre informazioni, vedere "Come controllare Driver Verifier" in Driver Verifier. È possibile prendere in considerazione l'aggiornamento o la rimozione del driver che ha causato anche questo problema.

Gli sviluppatori di driver usano le informazioni ottenute tramite questo controllo di bug per correggere i bug nel codice.

Per informazioni dettagliate su Driver Verifier, vedere Driver Verifier.For full details on Driver Verifier, see Driver Verifier.