Share via


Funzione KeBugCheck (ntddk.h)

La routine KeBugCheck riduce il sistema in modo controllato quando il chiamante individua una incoerenza non recuperabile che potrebbe danneggiare il sistema se il chiamante ha continuato a eseguire.

Sintassi

void KeBugCheck(
  [in] ULONG BugCheckCode
);

Parametri

[in] BugCheckCode

Specifica un valore che indica il motivo del controllo del bug.

Valore restituito

nessuno

Osservazioni

Un controllo di bug è un errore rilevato dal sistema che causa un arresto immediato e controllato del sistema. Vari componenti in modalità kernel eseguono il controllo della coerenza in fase di esecuzione. Quando un componente di questo tipo individua una inconsistenza non recuperabile, causa la generazione di un controllo di bug.

Se possibile, tutti i componenti in modalità kernel devono registrare un errore e continuare a eseguire, anziché chiamare KeBugCheck. Ad esempio, se un driver non è in grado di allocare le risorse necessarie, deve registrare un errore in modo che il sistema continui a essere eseguito; non deve generare un controllo di bug.

Un driver o un altro componente in modalità kernel deve chiamare questa routine solo in caso di errore irreversibile, non recuperabile che potrebbe danneggiare il sistema stesso.

KeBugCheck può essere utile nelle prime fasi dello sviluppo di un driver o durante il test. In queste circostanze, BugCheckCode passato a questa routine deve essere distinto da tali codici già in uso da Windows o dai relativi driver. Per un elenco di questi codici, vedere Codici di controllo bug.

Tuttavia, anche durante lo sviluppo del driver, questa routine è di solo utilità limitata, poiché comporta un arresto completo del sistema. Un metodo di debug più efficace consiste nel collegare un debugger del kernel al sistema e quindi usare routine che inviano messaggi al debugger o si interrompono nel debugger. Per altre informazioni, vedere Uso del codice di debug in un driver.

Quando un controllo di bug è inevitabile, la maggior parte dei componenti di sistema chiama KeBugCheckEx, che fornisce altre informazioni sulla causa di una tale incoerenza rispetto a KeBugCheck.

Requisiti

Requisito Valore
Client minimo supportato Disponibile a partire da Windows 2000.
Piattaforma di destinazione Universale
Intestazione ntddk.h (include Ntddk.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Qualsiasi livello

Vedi anche

IoAllocateErrorLogEntry

IoWriteErrorLogEntry

KeBugCheckEx

KeRegisterBugCheckCallback

KeRegisterBugCheckReasonCallback