Partilhar via


__fastfail

Específico da Microsoft

Encerra imediatamente o processo de chamada com sobrecarga mínima.

void __fastfail(unsigned int code);

Parâmetros

  • [in] code
    Uma constante simbólica FAST_FAIL_<description> de winnt.h ou wdm.h indica o motivo do término do processo.

Valor de retorno

O intrínseco __fastfail não retorna.

Comentários

O intrínseco __fastfail fornece um mecanismo para uma solicitação fast fail – uma forma de um processo potencialmente corrompido solicitar terminação imediata do processo. Falhas críticas que podem ter corrompido o estado de programa e pilha além da recuperação não podem ser tratadas pela recurso de manipulação de exceção regular. Use __fastfail para finalizar o processo usando uma sobrecarga mínima.

Internamente, __fastfail é implementado usando diversos mecanismos de arquitetura:

Arquitetura

Instrução

Local do argumento de código

x86

int 0x29

ecx

x64

int 0x29

rcx

ARM

Opcode 0xDEFB

r0

Uma solicitação de falha rápida é independente e normalmente exige apenas dois instruções para executar. Após a execução de uma solicitação de falha rápida, o kernel executa a ação apropriada. No código do modo de usuário, não há nenhuma dependência de memória além do ponteiro de instruções quando um evento de falha rápida é gerado. Isso aumenta sua confiabilidade, mesmo se houver corrupção de memória grave.

O argumento code, uma das constantes simbólicas FAST_FAIL_<description> de winnt.h or wdm.h, descreve o tipo de condição de falha e é incorporados em relatórios de falha de uma maneira específica ao ambiente.

Solicitações de falha rápida do modo de usuário são exibidas como uma segunda chance de exceção não continuada, com o código de exceção 0xC0000409 e pelo menos um parâmetro de exceção. O primeiro parâmetro de exceção é o valor code. Esse código de exceção indica ao WER (Relatório de Erros do Windows) e à infraestrutura de depuração que o processo está corrompido e que as ações mínimas no processo devem ser consideradas em resposta à falha. Solicitações de falha rápida do modo kernel são implementadas usando um código de verificação de bugs dedicado KERNEL_SECURITY_CHECK_FAILURE (0x139). Em ambos os casos, nenhum manipuladores de exceção é chamado porque o programa deve ser em um estado corrompido. Se um depurador estiver presente, terá a oportunidade de examinar o estado do programa antes do término.

Suporte para o mecanismo de falha rápida nativa iniciado no Windows 8. Sistemas operacionais Windows que não dão suporte a instrução de falha rápida nativamente tratarão normalmente uma solicitação falha rápida como uma violação de acesso ou como uma verificação de bugs UNEXPECTED_KERNEL_MODE_TRAP. Nesses casos, o programa é ainda encerrado, mas não necessariamente mais rápido.

__fastfail só está disponível como um intrínseco.

Requisitos

Intrínseco

Arquitetura

__fastfail

x86, x64, ARM

Arquivo de cabeçalho <intrin.h>

Consulte também

Referência

Intrínsecos do compilador