Controllo bug 0xA0: INTERNAL_POWER_ERROR
Il controllo dei bug INTERNAL_POWER_ERROR ha un valore di 0x000000A0. Questo controllo dei bug indica che il gestore dei criteri di risparmio energia ha riscontrato un errore irreversibile.
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 INTERNAL_POWER_ERROR
Il parametro 1 indica il tipo di violazione. Il significato degli altri parametri dipende dal valore del parametro 1.
Parametro 1 | Parametro 2 | Parametro 3 | Parametro 4 | Causa |
---|---|---|---|---|
0x1 |
1: Un dispositivo ha superato il numero massimo di conteggi dei riferimenti. 2, 3 o 4: sono stati accodati troppi IRP di potenza inrush. 5: L'IRP di alimentazione è stato inviato a un oggetto dispositivo a livello passivo. 6: Il sistema non è riuscito ad allocare un IRP di alimentazione necessario. |
Se il parametro 2 ha un valore pari a 1, il numero massimo di riferimenti consentiti. Se il parametro 2 ha un valore pari a 2, 3 o 4, il numero massimo di IRP in sospeso consentito. Se il parametro 2 ha un valore pari a 6, l'oggetto dispositivo di destinazione. |
Se il parametro 2 ha valore 6, indica se si tratta di un IRP di alimentazione (0x0) o di un dispositivo (0x1). | Si è verificato un errore durante la gestione del pacchetto di richiesta di I/O di alimentazione. |
0x2 |
Prenotato |
Prenotato |
Prenotato |
Si è verificato un errore interno durante il tentativo di elaborare un evento di alimentazione. Per altre informazioni, vedere Verifica dei bug di debug 0xA0 quando il parametro 1 è uguale a 0x2. |
0x3 |
Checksum previsto |
Checksum effettivo |
Numero di riga dell'errore |
Il checksum per una pagina del contesto di ibernazione non corrisponde al checksum previsto. |
0x4 |
Checksum previsto |
Checksum effettivo |
Numero di riga dell'errore |
Il checksum di una pagina che sta per essere scritto nel file di ibernazione non corrisponde al checksum previsto. |
0x5 |
Prenotato |
Prenotato |
Prenotato |
È stato inviato un codice di arresto sconosciuto al gestore di arresto del sistema. |
0x7 |
Prenotato |
Prenotato |
Prenotato |
Si è verificata un'eccezione non gestita. Per altre informazioni, vedere Verifica dei bug di debug 0xA0 quando il parametro 1 è uguale a 0x7. |
0x8 |
Questo parametro è sempre impostato su 0x100. |
Oggetto dispositivo |
POWER_CHANNEL_SUMMARY |
Si è verificato un errore irreversibile durante l'elaborazione di un evento di alimentazione del sistema. |
0x9 |
Codice di stato |
Fase di mirroring |
Prenotato |
Errore irreversibile durante la preparazione del file di ibernazione. |
0xA |
0: È stato richiesto un controllo dei bug immediatamente dopo la ripresa. 1: È stato richiesto un controllo dei bug durante la ripresa dopo l'accensione di tutti i dispositivi non visualizzabili. 2: È stato richiesto un controllo dei bug durante la ripresa dopo l'accensione di tutti i dispositivi. |
Prenotato |
Prenotato |
È stato richiesto un controllo dei bug durante la riattivazione a scopo di debug. |
0xB |
Dimensioni del file di ibernazione. |
Stato di ibernazione prima di esaurire lo spazio 0: HIBERFILE_PROGRESS_FR edizione Enterprise_MAP 1: HIBERFILE_PROGRESS_RESUME_CONTEXT 2: HIBERFILE_PROGRESS_PROCESSOR_STATE 3: HIBERFILE_PROGRESS_edizione Standard CURE_RANGES 4: HIBERFILE_PROGRESS_MEMORY_RANGES 5: HIBERFILE_PROGRESS_TABLE_PAGES 6: HIBERFILE_PROGRESS_MEMORY_IMAGE |
Quando param 2 è 4, dimensioni degli intervalli di memoria rimanenti. |
Il file di ibernazione è troppo piccolo. |
0xC |
Codice di stato |
Contesto dello stack di dump |
Prenotato |
Impossibile inizializzare lo stack di dump. |
0xD |
Stato di alimentazione del sistema in transizione. |
Il checkpoint di sospensione raggiunto più di recente. |
Puntatore alla struttura POP_POWER_ACTION. |
Il sistema non è riuscito a completare una transizione di alimentazione in modo tempestivo. |
0xf |
Stato di alimentazione del sistema in transizione. |
Il checkpoint di sospensione raggiunto più di recente. |
Puntatore al thread che attualmente elabora la richiesta. |
Il sistema non è riuscito a completare una transizione di alimentazione in modo tempestivo. |
0xF0 |
Stato di alimentazione del sistema in transizione. |
Il checkpoint di sospensione raggiunto più di recente. |
Puntatore al thread che attualmente elabora la richiesta. |
Il sistema non è riuscito a completare(sospendere) una transizione di alimentazione in modo tempestivo. |
0xF1 |
Stato di alimentazione del sistema in transizione. |
Il checkpoint di sospensione raggiunto più di recente. |
Puntatore al thread che attualmente elabora la richiesta. |
Il sistema non è riuscito a completare(riprendere) una transizione di alimentazione in modo tempestivo. |
Parametro 1 | Parametro 2 | Parametro 3 | Parametro 4 | Causa |
---|---|---|---|---|
0x101 |
Prenotato |
Puntatore all'eccezione. |
Prenotato |
Si è verificata un'eccezione non gestita durante l'elaborazione di un evento di alimentazione del sistema. Per altre informazioni, vedere Verifica dei bug di debug 0xA0 quando il parametro 1 è uguale a 0x101. |
0x102 |
Prenotato |
DUMP_INITIALIZATION_CONTEXT |
POP_HIBER_CONTEXT |
Le dimensioni del buffer di lavoro di ibernazione non sono allineate alla pagina. |
0x103 |
Prenotato |
POP_HIBER_CONTEXT |
Prenotato |
Non è stato possibile tenere conto di tutte le pagine di lavoro durante il processo di ibernazione. |
0x104 |
Prenotato |
POP_HIBER_CONTEXT |
Prenotato |
È stato effettuato un tentativo di eseguire il mapping della memoria di ibernazione interna mentre le strutture di memoria interne sono state bloccate. |
0x105 |
Prenotato |
POP_HIBER_CONTEXT |
Prenotato |
È stato effettuato un tentativo di eseguire il mapping della memoria di ibernazione interna con un flag di tipo di memoria non supportato. |
0x106 |
Prenotato |
Elenco dei descrittori di memoria (MDL) |
Prenotato |
È stato creato un elenco di descrittori di memoria durante il processo di ibernazione che descrive la memoria non allineata a paging. |
0x107 |
Prenotato |
POP_HIBER_CONTEXT |
PO_MEMORY_RANGE_ARRAY |
Si è verificata una mancata corrispondenza dei dati nelle strutture di dati di ibernazione interne. |
0x108 |
Prenotato |
POP_HIBER_CONTEXT |
Prenotato |
Il sottosistema del disco non è riuscito a scrivere correttamente parte del file di ibernazione. |
0x109 |
Prenotato |
Checksum previsto |
Checksum effettivo |
Il checksum per i dati dello stato del processore non corrisponde al checksum previsto. |
0x10A |
Prenotato |
POP_HIBER_CONTEXT |
Codice di errore NTSTATUS |
Il sottosistema del disco non è riuscito a leggere o scrivere correttamente parte del file di ibernazione. |
0x10B |
Prenotato |
Stato di ibernazione corrente |
Prenotato |
È stato effettuato un tentativo di contrassegnare le pagine per la fase di ibernazione di avvio in un momento errato usando l'API PoSetHiberRange. |
0x10C |
Prenotato |
Flag forniti all'API |
Lunghezza da contrassegnare |
L'API PoSetHiberRange è stata chiamata con parametri non validi. |
0x10D |
Prenotato |
POP_HIBER_CONTEXT |
Codice di errore NTSTATUS |
Il sottosistema kernel sicuro non è riuscito durante la fornitura di dati per la ripresa. |
0x10E |
Prenotato |
Checksum non corretto |
Checksum della lettura del disco precedente |
Il sottosistema del disco ha restituito dati danneggiati durante la lettura dal file di ibernazione. |
0x10F |
Checkpoint di sospensione del sistema corrente. |
Tipo di errore interno. 0: è stato scritto un checkpoint durante la disabilitazione del paging, ma prima che gli interrupt po disabilitati su tutti i processori. 1 : una CPU diversa da 0 ha tentato di scrivere un checkpoint durante la fase di interruzione disabilitata della sospensione del sistema. 2 : un'altra parte di codice nel sistema sta eseguendo un servizio di runtime EFI. |
Prenotato |
Si è verificato un errore interno durante il checkpoint dello stato di sospensione del sistema. |
0x110 |
Prenotato |
Prenotato |
Prenotato |
Il sistema non è riuscito a disabilitare gli stati di sospensione del sistema, ma deve farlo per garantire l'integrità dei dati. |
0x111 |
Prenotato |
Prenotato |
Prenotato |
Un driver ha indicato che l'utente è presente e l'utente ha abilitato un'opzione di debug per acquisire lo stack di chiamate. |
0x200 |
Prenotato |
DEVICE_OBJECT |
DEVICE_OBJECT_POWER_EXTENSION |
È in corso il controllo di un tipo di dispositivo sconosciuto per uno stato di inattività. |
0x300 |
Prenotato |
DEVICE_OBJECT |
IRP |
Uno stato sconosciuto è stato restituito da un IRP di alimentazione della batteria. |
0x301 |
Prenotato |
DEVICE_OBJECT |
IRP |
La batteria è entrata in uno stato sconosciuto. |
0x400 |
Prenotato |
IO_STACK_LOCATION |
DEVICE_OBJECT |
Un dispositivo ha superato il numero massimo di conteggi dei riferimenti. |
0x401 |
Prenotato |
Elenco IRP in sospeso |
DEVICE_OBJECT |
Sono stati accodati troppi IRP di potenza inrush. |
0x402 |
Prenotato |
Elenco IRP in sospeso |
DEVICE_OBJECT |
Sono stati accodati troppi IRP di potenza inrush. |
0x403 |
Prenotato |
Elenco IRP in sospeso |
DEVICE_OBJECT |
Sono stati accodati troppi IRP di potenza inrush. |
0x404 |
Prenotato |
IO_STACK_LOCATION |
DEVICE_OBJECT |
Un IRP di alimentazione è stato inviato a un oggetto dispositivo a livello passivo. |
0x500 |
Prenotato |
IRP |
DEVICE_OBJECT |
Uno stato sconosciuto è stato restituito da un IRP di alimentazione termica. |
Parametro 1 | Parametro 2 | Parametro 3 | Parametro 4 | Causa |
---|---|---|---|---|
0x600 |
DEVICE_OBJECT PDO |
Prenotato |
Prenotato |
Un driver ha tentato una registrazione duplicata con Power Runtime Framework. |
0x601 |
POP_FX_DEVICE dispositivo |
PEP_DEVICE_REGISTER PEP |
Prenotato |
Nessun plug-in power engine accettato registrazione del dispositivo. |
0x602 |
DEVICE_NODE nodo del dispositivo |
Conteggio sospensione |
Prenotato |
Il numero di sospensioni del nodo del dispositivo non corrisponde al numero di attivazioni. |
0x603 |
POP_FX_PLUGIN |
Tipo di richiesta di lavoro |
Prenotato |
Un plug-in Power Engine ha effettuato una richiesta di lavoro non valida. |
0x605 |
ID notifica |
POP_FX_PLUGIN |
Prenotato |
Un plug-in power engine non è riuscito ad accettare la notifica di risparmio energia obbligatoria del dispositivo. |
0x606 |
POP_FX_COMPONENT |
POP_FX_COMPONENT_FLAGS |
Nuova condizione per il componente |
Un plug-in Power Engine ha tentato di eseguire la transizione di un componente di risorsa di sistema critico a una condizione attiva (o inattiva) quando la risorsa era già attiva (o inattiva). |
0x607 |
POP_FX_DEVICE |
NTSTATUS |
Prenotato |
L'acquisizione di un blocco di rimozione del dispositivo del framework di risparmio energia di runtime non è riuscita quando è necessario avere esito positivo. |
0x608 |
POP_FX_COMPONENT |
POP_FX_COMPONENT_FLAGS |
Prenotato |
Un driver ha tentato di eseguire la transizione di un componente inattiva senza una richiesta attiva precedente. |
0x609 |
POP_FX_PLUGIN |
POP_FX_DEVICE |
Tipo di richiesta duplicato 0: DevicePowerRequired 1: DevicePowerNotRequired |
Un plug-in power engine ha richiesto l'alimentazione del dispositivo o l'alimentazione del dispositivo non è necessaria senza una richiesta di intervento del tipo opposto. |
0x610 |
POP_FX_PLUGIN |
POP_FX_DEVICE |
Prenotato |
Un plug-in power engine ha richiesto l'alimentazione del dispositivo non necessaria mentre una richiesta di alimentazione del dispositivo precedente è in sospeso. |
0x611 |
POP_FX_PLUGIN |
POP_FX_DEVICE |
Indice del componente non valido |
Un plug-in power engine ha richiesto un'operazione su un componente non valido. |
0x612 |
POP_FX_PLUGIN PowerEnginePlugin |
Prenotato |
Prenotato |
Un plug-in power engine ha richiesto ulteriori operazioni da eseguire nel contesto di una notifica del dispositivo in cui non è stato fornito alcun buffer dall'ordine di acquisto per la richiesta. |
0x613 |
POP_FX_DEVICE |
Indice dei componenti |
Operazione 0: Completare l'alimentazione del dispositivo non necessaria 1: Segnalare il dispositivo acceso 2: Condizione di inattività completa |
Un driver ha tentato di completare una richiesta quando tale richiesta in sospeso non è in sospeso. |
0x614 |
POP_FX_DEVICE |
Indice dei componenti |
Parametro non valido 0: PO_FX_FLAG_BLOCKING usato in IRQL >= DISPATCH_LEVEL 1: PO_FX_FLAG_BLOCKING e PO_FX_FLAG_ASYNC_ONLY entrambi specificati 2: Indice componente non valido |
Un driver ha richiesto una transizione attiva/inattiva su un componente con un parametro non valido. |
0x615 |
POP_FX_PLUGIN |
POP_FX_COMPONENT |
Azione illegale 0: Componente non nello stato di inattività 0 1:Componente già attivo 2: Nessuna richiesta di attivazione in sospeso 3: Transizione dello stato di inattività in sospeso |
Un plug-in power engine ha indicato illegalmente il completamento di un'attivazione di un componente. |
0x616 |
POP_FX_PLUGIN |
POP_FX_COMPONENT |
Azione illegale 0: stato di inattività non valido 1: Il componente è già nello stato richiesto 2: Richiesto uno stato di inattività diverso da zero senza passare lo stato di inattività 0 |
Un plug-in Power Engine ha richiesto illegalmente una transizione dello stato di inattività del componente. |
0x617 |
POP_FX_PLUGIN PowerEnginePlugin |
UNICODE_STRING DeviceId |
PEP_DEVICE_REGISTER registrazione PEP |
Un plug-in Power Engine ha restituito un tipo di accettazione non valido durante l'elaborazione di una notifica di registrazione del dispositivo. |
0x618 |
POP_FX_WORK_ORDER_WATCHDOG_INFO WorkOrder |
Prenotato |
Prenotato |
Un thread di power worker di runtime è stato bloccato per troppo tempo. |
0x619 |
dispositivo POP_FX_DEVICE |
Indice dei componenti |
NULL o DEVICE_NODE del dispositivo figlio effettivamente responsabile |
Un dispositivo ha bloccato l'ingresso nello stato di alimentazione inattiva più profondo del runtime per troppo tempo. |
0x61A |
plug-in power engine POP_FX_PLUGIN |
POP_FX_DEVICE dispositivo |
Prenotato |
Un plug-in power engine ha fornito informazioni non valide sulle informazioni sullo stato delle prestazioni di un componente. |
0x61B |
POP_FX_DEVICE dispositivo |
Indice dei componenti |
Prenotato |
Un driver ha emesso una richiesta di stato delle prestazioni prima della registrazione per gli stati di prestazioni del dispositivo. |
0x61C |
POP_FX_DEVICE dispositivo |
Indice dei componenti |
Parametro non valido VALORI: 0 : PerfChangesCount supera il numero di set di stati perf registrati per questo componente |
Un driver ha emesso una richiesta di stato delle prestazioni con parametri non validi. |
0x61D |
POP_FX_DEVICE dispositivo |
Indice dei componenti |
Contesto di richiesta in sospeso |
Un driver ha emesso una richiesta di stato delle prestazioni mentre una richiesta precedente è in sospeso. |
0x61E |
Prenotato |
Prenotato |
Prenotato |
Un plug-in Power Engine ha tentato di eseguire una transizione critica su un dispositivo debugger mentre sono abilitate le transizioni automatiche. |
0x61F |
POP_FX_DEVICE dispositivo |
Indice dello stato di inattività coordinato |
Prenotato |
Un plug-in power engine ha tentato di abilitare le transizioni automatiche del debugger per uno stato di inattività coordinato che non è uno stato a livello di piattaforma. |
0x620 |
POP_FX_DEVICE dispositivo |
Indice dello stato di inattività coordinato |
Prenotato |
Un plug-in power engine ha tentato di registrare una dipendenza di stato D per uno stato di inattività coordinato che non è uno stato a livello di piattaforma. |
0x621 |
POP_FX_DEVICE dispositivo |
Indice dei componenti |
Indice dello stato di inattività coordinato |
Un plug-in Power Engine ha tentato di registrare una dipendenza di stato F per uno stato di inattività coordinato che non è uno stato a livello di piattaforma. |
0x622 |
POP_FX_COMPONENT padre |
POP_FX_COMPONENT figlio |
Prenotato |
Un driver ha tentato di annullare la registrazione da PoFx con dipendenti in sospeso. |
0x666 |
PPOP_PEP_ACTIVITY |
Nuovo tipo di attività 0: DevicePowerOn 1: ComponentIdleStateChange 2: ComponenteAttivazione 3: ComponentActive 4: DevicePowerOff 5: DeviceSuspend |
Tipo di attività in conflitto 0: DevicePowerOn 1: ComponentIdleStateChange 2: ComponenteAttivazione 3: ComponentActive 4: DevicePowerOff 5: DeviceSuspend |
Il plug-in power engine predefinito ha tentato di attivare una nuova attività in conflitto con un'altra attività. |
0x667 |
POP_PEP_ACTIVITY |
Tipo di impegno 0: DevicePowerOn 1: ComponentIdleStateChange 2: ComponenteAttivazione 3: ComponentActive 4: DevicePowerOff 5: DeviceSuspend |
POP_PEP_ACTIVITY_STATUS |
Il plug-in Power Engine predefinito ha tentato di completare un'attività che non è in esecuzione. |
0x668 |
PPPM_COORDINATED_STATE il cui conteggio dei riferimenti viene aggiornato. |
Valore del conteggio dei riferimenti non valido osservato da questa funzione. |
Maschera degli stati di inattività della piattaforma da aggiornare. |
Il plug-in Power Engine predefinito ha tentato di rimuovere un vincolo di stato di inattività della piattaforma non vincolato in precedenza. |
0x669 |
PPPM_COORDINATED_STATE il cui conteggio dei riferimenti viene aggiornato. |
Valore del conteggio dei riferimenti non valido osservato da questa funzione. |
Prenotato |
Il plug-in Power Engine predefinito ha rilevato un errore di coerenza interna durante il tentativo di notificare esclusivamente a PoFx la disponibilità di uno stato di inattività della piattaforma. |
Parametro 1 | Parametro 2 | Parametro 3 | Parametro 4 | Causa |
---|---|---|---|---|
0x680 |
Codice di errore NTSTATUS. |
Prenotato |
Prenotato |
Il framework di alimentazione di runtime non è riuscito ad analizzare una tabella ACPI necessaria a causa della mancanza o della forma non valida. Questo è in genere dovuto a un errore BIOS. |
0x700 |
PEPHANDLE |
PEP_PPM_IDLE_edizione Standard LECT |
Prenotato |
Un plug-in power engine ha specificato dipendenze inattive del processore non valide. |
0x701 |
Indice dello stato di inattività selezionato del processore bloccato |
Indirizzo PRCB del processore bloccato |
Indice del processore bloccato |
Un processore non è riuscito a completare una transizione inattiva entro l'intervallo allocato. Indica che il processore specificato è bloccato. |
0x702 |
Indice dello stato di inattività selezionato del processore |
Stato di sincronizzazione inattiva del processore |
Indirizzo PRCB del processore bloccato |
Un processore si è svegliato da uno stato non interrompibile senza che il sistema operativo avvii una riattivazione esplicita tramite pep (usando la sincronizzazione inattiva PPM necessaria). |
0x703 |
PEPHANDLE |
PEP_PPM_QUERY_PLATFORM_STATE |
Prenotato |
Un plug-in power engine ha specificato dipendenze inattive del processore non valide durante una notifica dello stato della piattaforma di query. |
0x704 |
Prenotato |
Prenotato |
Prenotato |
Una transizione di stato inattiva coordinata non è stata completata in modo tempestivo. |
0x705 |
PEPHANDLE |
Notifica |
Tag a quattro caratteri che identifica il campo modificato illegalmente. Decode tag in un debugger del kernel con: tag .formats, con tag racchiuso in < >. |
Un plug-in Power Engine ha modificato un campo di sola lettura nel buffer passato a una notifica. |
0x706 |
Notifica |
Tag a quattro caratteri che identifica il campo contenente il valore non valido. Decode tag in un debugger del kernel con: tag .formats, con tag racchiuso in < >. |
Valore o indice non valido in una matrice in cui esiste un valore non valido |
Un plug-in power engine ha restituito un valore non valido in uno dei campi del buffer passato a una notifica. |
0x800 |
Stato CS corrente |
Prenotato |
Prenotato |
Il monitoraggio è stato attivato in modo imprevisto mentre il sistema era in standby connesso. |
0x801 |
Motivo della modifica dello stato di visualizzazione |
ID della sessione che ha aggiornato lo stato di visualizzazione |
Prenotato |
Si è verificata una transizione dello stato di visualizzazione non valida. |
0x802 |
POWER_MONITOR_REQUEST_REASON che ha causato la disattivazione dello schermo |
1 se il processore di eventi di alimentazione è abilitato, 0 in caso contrario. |
Puntatore a un POP_PDC_IDLE_PHA edizione Standard_WATCHDOG_CONTEXT globale. |
PdC System Idle Phase (NoCsPhase) ha bloccato la transizione allo standby moderno per un tempo più lungo del previsto. |
0x900 |
Puntatore al callback responsabile dell'impostazione dell'alimentazione |
IRQL prima di chiamare il callback di impostazione dell'alimentazione |
IRQL dopo la restituzione dal callback dell'impostazione dell'alimentazione |
Callback di impostazione dell'alimentazione registrato restituito con IRQL modificato. Ciò indica che il callback ha modificato irQL ma non ha ripristinato l'IRQL originale prima della restituzione. |
0x901 |
DEVICE_OBJECT |
IRP |
Conteggio di disabilitazione del thread APC |
Un driver dispone di API kernel abilitate/disabilitate durante la gestione di un IRP di alimentazione. |
0x4001 |
Codice secondario dell'errore KE. VALORI: 0x100 : (INTERNAL_POWER_ERROR_KE_PROCESSOR_ON_TIMED_OUT) Il firmware ha richiesto troppo tempo per l'alimentazione su un processore. 0x101 : (INTERNAL_POWER_ERROR_KE_INVALID_INTERRUPT_TARGET) È stata specificata una destinazione di interrupt non valida. 0x102 : (INTERNAL_POWER_ERROR_KE_edizione Standard TDESTINATION_FAILED) Non è stato possibile modificare la destinazione di una riga di interruzione. 0x103 : (INTERNAL_POWER_ERROR_KE_IPI_REQUEST_FAILED) Non è stato possibile rilasciare un IPI durante il reindirizzamento di un interrupt. 0x104 : (INTERNAL_POWER_ERROR_KE_ARCH_NOT_SUPPORTED) Architettura del processore non supportata. |
Prenotato |
Prenotato |
(INTERNAL_POWER_ERROR_KE_SUBCODE) Si è verificato un errore interno nell'esecutivo del kernel durante un'operazione di alimentazione. |
0xAA64 |
Codice di errore |
ID funzione PSCI in corso |
Dati dipendenti dal contesto interno facoltativi |
La funzione PSCI (Power State Coordination Interface) di AArm64 ha rilevato un errore critico irreversibile. |
Risoluzione
Note generali
Nella tabella precedente diversi parametri sono puntatori alle strutture. Ad esempio, se il parametro 2 è elencato come DEVICE_OBJECT, il parametro 2 è un puntatore a una struttura DEVICE_OBJECT. Alcune delle strutture sono definite in wdm.h, incluse in Windows Driver Kit. Ad esempio, le strutture seguenti sono definite in wdm.h.
- EXCEPTION_POINTERS
- DEVICE_OBJECT
- IO_STACK_LOCATION
- PEP_DEVICE_REGISTER
Alcune delle strutture visualizzate nella tabella precedente non sono definite in alcun file di intestazione pubblica. È possibile visualizzare le definizioni di tali strutture usando il comando dt debugger. Nell'esempio seguente viene illustrato come usare il comando dt per visualizzare la struttura DEVICE_OBJECT_POWER_EXTENSION .
3: kd> dt nt!DEVICE_OBJECT_POWER_EXTENSION
+0x000 IdleCount : Uint4B
+0x004 BusyCount : Uint4B
+0x008 BusyReference : Uint4B
+0x00c TotalBusyCount : Uint4B
+0x010 ConservationIdleTime : Uint4B
+0x014 PerformanceIdleTime : Uint4B
+0x018 DeviceObject : Ptr64 _DEVICE_OBJECT
+0x020 IdleList : _LIST_ENTRY
+0x030 IdleType : _POP_DEVICE_IDLE_TYPE
+0x034 IdleState : _DEVICE_POWER_STATE
+0x038 CurrentState : _DEVICE_POWER_STATE
+0x040 Volume : _LIST_ENTRY
+0x050 Specific : <unnamed-tag>
Le procedure seguenti consentono di eseguire il debug di determinate istanze di questo controllo di bug.
Verifica dei bug di debug 0xA0 quando il parametro 1 è uguale a 0x2
Esaminare lo stack. Cerca il ntoskrnl! Funzione PopExceptionFilter . Questa funzione contiene il codice seguente come primo argomento.
(error_code << 16) | _LINE_
Se il chiamante è PopExceptionFilter, il primo argomento di questa funzione è di tipo PEXCEPTION_POINTERS. Si noti il valore di questo argomento.
Usare il comando dt (Tipo di visualizzazione) e specificare il valore trovato nel passaggio precedente come argomento.
dt nt!_EXCEPTION_POINTERS argument
Questo comando visualizza la struttura. Prendere nota dell'indirizzo del record di contesto.
Usare il comando .cxr (Display Context Record) e specificare il record di contesto trovato nel passaggio precedente come record.
.cxr record
Questo comando imposta il contesto del registro sul valore appropriato.
Usare un'ampia gamma di comandi per analizzare l'origine dell'errore. Iniziare con kb (Display Stack Backtrace) .
Verifica dei bug di debug 0xA0 quando il parametro 1 è uguale a 0x7
Esaminare lo stack. Cerca il ntoskrnl! Funzione PopExceptionFilter . Il primo argomento di questa funzione è di tipo PEXCEPTION_POINTERS. Si noti il valore di questo argomento.
Usare il comando dt (Tipo di visualizzazione) e specificare il valore trovato nel passaggio precedente come argomento.
dt nt!_EXCEPTION_POINTERS argument
Questo comando visualizza la struttura. Prendere nota dell'indirizzo del record di contesto.
Usare il comando .cxr (Display Context Record) e specificare il record di contesto trovato nel passaggio precedente come record.
.cxr record
Questo comando imposta il contesto del registro sul valore appropriato.
Usare un'ampia gamma di comandi per analizzare l'origine dell'errore. Iniziare con kb (Display Stack Backtrace) .
Verifica dei bug di debug 0xA0 quando il parametro 1 è uguale a 0x101
Usare il comando dt (Tipo di visualizzazione) e specificare il valore del parametro 3 come argomento.
dt nt!_EXCEPTION_POINTERS argument
Questo comando visualizza la struttura. Prendere nota dell'indirizzo del record di contesto.
Usare il comando .cxr (Display Context Record) e specificare il record di contesto trovato come record del passaggio precedente.
.cxr record
Questo comando imposta il contesto del registro sul valore appropriato.
Usare un'ampia gamma di comandi per analizzare l'origine dell'errore. Iniziare con kb (Display Stack Backtrace) .