Compartilhar via


Função WdfRequestRequeue (wdfrequest.h)

[Aplica-se a KMDF e UMDF]

O método WdfRequestRequeue retorna uma solicitação de E/S ao chefe da fila de E/S da qual foi entregue ao driver.

Sintaxe

NTSTATUS WdfRequestRequeue(
  [in] WDFREQUEST Request
);

Parâmetros

[in] Request

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

Valor de retorno

WdfRequestRequeue retornará STATUS_SUCCESS se a operação for bem-sucedida. Caso contrário, esse método poderá retornar um dos seguintes valores:

Código de retorno Descrição
STATUS_INVALID_PARAMETER
Um parâmetro de entrada é inválido.
STATUS_INVALID_DEVICE_REQUEST
Esse valor será retornado se ocorrer um destes procedimentos:
  • A solicitação de E/S especificada não veio de uma fila de E/S.
  • O driver não possui a solicitação de E/S.
  • A solicitação é cancelável.
  • O método de expedição da fila não é manual.
 

Esse método também pode retornar outros valores NTSTATUS .

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

Observações

Um driver pode chamar WdfRequestRequeue somente se ele estiver usando o método de expedição manual para a fila de E/S.

Se o driver chamar WdfRequestRequeue depois de chamar WdfIoQueuePurge, a tentativa de requeue poderá ser bem-sucedida antes que a limpeza seja concluída. Nas versões 1.9 e anteriores do KMDF, essa sequência faz com que o sistema operacional falhe. Esse problema é corrigido no KMDF versão 1.11 e posterior.

Para obter mais informações sobre WdfRequestRequeue, consulte Requeuing I/O Requests.

Exemplos

O exemplo de código a seguir retorna uma solicitação de E/S especificada para a fila da qual o driver recebeu a solicitação.

NTSTATUS status;

status = WdfRequestRequeue(request);

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), InvalidReqAccess(kmdf), InvalidReqAccessLocal(kmdf), kmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)