Função WdfIoQueueRetrieveNextRequest (wdfio.h)

[Aplica-se a KMDF e UMDF]

O método WdfIoQueueRetrieveNextRequest recupera a próxima solicitação de E/S disponível de uma fila de E/S especificada.

Sintaxe

NTSTATUS WdfIoQueueRetrieveNextRequest(
  [in]  WDFQUEUE   Queue,
  [out] WDFREQUEST *OutRequest
);

Parâmetros

[in] Queue

Um identificador para um objeto de fila de estrutura.

[out] OutRequest

Um ponteiro para um local que recebe um identificador para um objeto de solicitação de estrutura. Se a fila estiver vazia ou a última solicitação tiver sido recuperada, esse parâmetro receberá NULL.

Retornar valor

WdfIoQueueRetrieveNextRequest 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
O driver forneceu um identificador inválido.
STATUS_NO_MORE_ENTRIES
A estrutura chegou ao fim da fila de E/S.
STATUS_INVALID_DEVICE_STATE
A fila de E/S especificada está configurada para o método de expedição paralela.
STATUS_WDF_PAUSED
A fila de E/S especificada é gerenciada por energia e seu dispositivo está em um estado de baixa potência ou a fila especificada é interrompida.
 

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

Um bug marcar ocorrerá se o driver fornecer um identificador de objeto inválido.

Comentários

Se um driver configurar uma fila de E/S para expedição manual de solicitações de E/S, o driver normalmente chamará WdfIoQueueRetrieveNextRequest para obter solicitações da fila. Um driver que configurou uma fila de E/S para expedição sequencial também pode chamar WdfIoQueueRetrieveNextRequest. Para obter mais informações sobre como usar WdfIoQueueRetrieveNextRequest com os métodos de expedição manuais ou sequenciais, consulte Métodos de expedição para solicitações de E/S.

Depois de chamar WdfIoQueueRetrieveNextRequest para obter uma solicitação de E/S, o driver é proprietário da solicitação e deve processar a solicitação de E/S de alguma maneira.

Para obter mais informações sobre o método WdfIoQueueRetrieveNextRequest , consulte Gerenciando filas de E/S.

Exemplos

O exemplo de código a seguir obtém um identificador para o próximo objeto de solicitação contido na fila de E/S de um dispositivo.

NTSTATUS  status;
WDFREQUEST  request;

status = WdfIoQueueRetrieveNextRequest(
                                       pDeviceContext->ReadQueue,
                                       &request
                                       );

Requisitos

Requisito Valor
Plataforma de Destino Universal
Versão mínima do KMDF 1.0
Versão mínima do UMDF 2,0
Cabeçalho wdfio.h (inclua Wdf.h)
Biblioteca Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <= DISPATCH_LEVEL
Regras de conformidade de DDI DoubleCompletion(kmdf), DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), wdfioqueueretrievenextrequest, WdfIoQueueRetrieveNextRequest(kmdf)

Confira também

WdfIoQueueRetrieveFoundRequest

WdfIoQueueRetrieveRequestByFileObject