Condividi tramite


__fastfail

Sezione specifica Microsoft

Termina immediatamente il processo chiamante con un sovraccarico minimo.

Sintassi

__declspec(noreturn) void __fastfail(unsigned int code);

Parametri

code
[in] Costante FAST_FAIL_<description> simbolica di winnt.h o wdm.h che indica il motivo della terminazione del processo.

Valore restituito

La funzione intrinseca __fastfail non restituisce alcun risultato.

Osservazioni:

L'intrinseco __fastfail fornisce un meccanismo per una richiesta di errore rapido, un modo per un processo potenzialmente danneggiato per richiedere la terminazione immediata del processo. Gli errori critici che possono aver danneggiato lo stato del programma e lo stack senza ripristino non possono essere gestiti tramite la normale funzionalità di gestione delle eccezioni. Usare __fastfail per terminare il processo con un sovraccarico minimo.

Internamente, __fastfail viene implementato tramite diversi meccanismi specifici per l'architettura:

Architettura Istruzione Posizione dell'argomento code
x86 int 0x29 ecx
x64 int 0x29 rcx
ARM Opcode 0xDEFB r0
ARM64 Opcode 0xF003 x0

Una richiesta di errore immediato è autonoma e in genere richiede l'esecuzione di solo due istruzioni. Dopo l'esecuzione di una richiesta di errore rapido, il kernel esegue quindi l'azione appropriata. Quando viene generato un evento di errore immediato, nel codice in modalità utente non ci sono dipendenze di memoria oltre al puntatore all'istruzione stesso. In questo modo si ottimizza l'affidabilità, anche in caso di grave danneggiamento della memoria.

L'argomento code , una delle FAST_FAIL_<description> costanti simboliche di winnt.h o wdm.h, descrive il tipo di condizione di errore. È incorporato nei report degli errori in modo specifico dell'ambiente.

Le richieste di errore rapido in modalità utente vengono visualizzate come seconda eccezione non continuabile con codice di eccezione 0xC0000409 e con almeno un parametro di eccezione. Il primo parametro dell'eccezione è il valore code. Questo codice di eccezione indica all'infrastruttura di Segnalazione errori Windows (WER) e di debug danneggiata dal processo e che devono essere eseguite azioni minime in-process in risposta all'errore. Le richieste di errore immediato in modalità kernel vengono implementate usando un codice di controllo errori dedicato, KERNEL_SECURITY_CHECK_FAILURE (0x139). In entrambi i casi, non vengono richiamati i gestori delle eccezioni perché è previsto che lo stato del programma sia danneggiato. Se è presente un debugger, è possibile esaminare lo stato del programma prima della terminazione.

Il supporto del meccanismo nativo di errore immediato è iniziato in Windows 8. I sistemi operativi Windows che non supportano l'istruzione fast fail vengono in genere considerati in modo nativo una richiesta di errore rapido come violazione di accesso o come UNEXPECTED_KERNEL_MODE_TRAP controllo di bug. In questi casi, il programma viene comunque terminato, ma non necessariamente con la stessa rapidità.

__fastfail è disponibile solo come funzione intrinseca.

Requisiti

Intrinsic Architettura
__fastfail x86, x64, ARM, ARM64

<File di intestazione intrin.h>

Fine sezione specifica Microsoft

Vedi anche

Intrinseci del compilatore