Compartilhar via


Função WdfRequestIsCanceled (wdfrequest.h)

[Aplica-se a KMDF e UMDF]

O método WdfRequestIsCanceled determina se o gerente de E/S tentou cancelar uma solicitação de E/S especificada.

Sintaxe

BOOLEAN WdfRequestIsCanceled(
  [in] WDFREQUEST Request
);

Parâmetros

[in] Request

Um identificador para um objeto de solicitação de estrutura.

Valor de retorno

WdfRequestIsCanceled retornará verdadeiro se o gerente de E/S tiver tentado cancelar a solicitação de E/S especificada. Esse método pode retornar verdadeiro mesmo que o driver de chamada não possua a solicitação. Se o driver não possui a solicitação, ele não deve chamar WdfRequestIsCanceled. Consulte informações adicionais em Comentários.

WdfRequestIsCanceled retorna FALSE por um dos seguintes motivos:

  • O gerente de E/S não tentou cancelar a solicitação.
  • O driver de chamada não possui a solicitação.
  • O driver de chamada chamou o método WdfRequestMarkCancelable ou WdfRequestMarkCancelableEx.

Uma verificação de bug ocorre se o driver fornece um identificador de objeto inválido.

Observações

Se o driver não tiver chamado WdfRequestMarkCancelable ou WdfRequestMarkCancelableEx para registrar uma função de retorno de chamada EvtRequestCancel, mas se você quiser que seu driver determine se o gerente de E/S tentou cancelar uma solicitação de E/S, o driver pode chamar WdfRequestIsCanceled.

Se o driver tiver chamado WdfRequestMarkCancelable ou WdfRequestMarkCancelableEx, ele deverá chamar WdfRequestUnmarkCancelable antes de chamar WdfRequestIsCanceled.

Um driver pode chamar WdfRequestIsCanceled para uma solicitação somente se o driver possuir solicitação de E/S.

Se WdfRequestIsCanceled retornar TRUE, o driver deverá cancelar a solicitação chamando WdfRequestComplete com um parâmetro Status de STATUS_CANCELLED. Se o driver tentar concluir uma solicitação que ele não possui, o driver poderá causar uma falha no sistema.

Para obter mais informações sobre WdfRequestIsCanceled, consulte cancelando solicitações de E/S

Exemplos

O exemplo de código a seguir chama WdfRequestComplete se WdfRequestIsCanceled retornar VERDADEIRO.

if (WdfRequestIsCanceled(request)) {
    WdfRequestComplete(
                       request,
                       STATUS_CANCELLED
                       );
}

Requisitos

Requisito Valor
da Plataforma de Destino Universal
versão mínima do KMDF 1.0
versão mínima do UMDF 2.0
cabeçalho wdfrequest.h (inclua Wdf.h)
biblioteca Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <=DISPATCH_LEVEL
regras de conformidade de DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), ReqIsCancOnCancReq(kmdf)

Consulte também

EvtRequestCancel

WdfRequestComplete

WdfRequestMarkCancelable

WdfRequestMarkCancelableEx

WdfRequestUnmarkCancelable