Compartilhar via


EVT_WDF_IO_ALLOCATE_RESOURCES_FOR_RESERVED_REQUEST função de retorno de chamada (wdfio.h)

[Aplica-se somente ao KMDF]

A função de retorno de chamada EvtIoAllocateResourcesForReservedRequest de um driver aloca recursos específicos de solicitação que o driver pode usar para processar uma solicitação de E/S no futuro. A estrutura está pré-alocando o objeto de solicitação especificado para uso futuro em situações de memória baixa.

Sintaxe

EVT_WDF_IO_ALLOCATE_RESOURCES_FOR_RESERVED_REQUEST EvtWdfIoAllocateResourcesForReservedRequest;

NTSTATUS EvtWdfIoAllocateResourcesForReservedRequest(
  [in] WDFQUEUE Queue,
  [in] WDFREQUEST Request
)
{...}

Parâmetros

[in] Queue

Um identificador para um objeto de fila de E/S.

[in] Request

Um identificador para um objeto de solicitação que a estrutura criou para uso durante futuras situações de baixa memória.

Retornar valor

A função de retorno de chamada EvtIoAllocateResourcesForReservedRequest deve retornar STATUS_SUCCESS ou outro valor status para o qual NT_SUCCESS(status) é igual a TRUE se a função não encontrar erros. Caso contrário, essa função deve retornar um valor status para o qual NT_SUCCESS(status) é igual a FALSE.

Comentários

Um driver pode registrar uma função de retorno de chamada EvtIoAllocateResourcesForReservedRequest quando chama WdfIoQueueAssignForwardProgressPolicy.

Se o driver registrar uma função de retorno de chamada EvtIoAllocateResourcesForReservedRequest , a estrutura chamará a função imediatamente após criar um objeto de solicitação que ele reserva para situações de baixa memória.

A função de retorno de chamada pode alocar recursos que seu driver exigirá para processar uma solicitação posteriormente, se a estrutura usar a solicitação reservada devido a uma situação de baixa memória.

Para alocar memória para recursos específicos da solicitação, uma função de retorno de chamada EvtIoAllocateResourcesForReservedRequest pode chamar WdfObjectAllocateContext, especificando o identificador de objeto de solicitação especificado pelo parâmetro Request .

Como alternativa ou adicional, seu driver pode chamar WdfDeviceInitSetRequestAttributes antes de chamar WdfDeviceCreate. Como resultado, a estrutura alocará espaço de contexto para cada objeto de solicitação reservada quando criar o objeto.

Se o driver alocar espaço de contexto de objeto para objetos de solicitação reservados, o driver deverá reinicializar o espaço de contexto quando concluir uma solicitação de E/S que usa um objeto de solicitação reservado. A estrutura não reinicializa o espaço de contexto de objetos de solicitação reservados após o uso.

Se o driver chamar WdfDeviceInitSetRequestAttributes e especificar uma função de retorno de chamada EvtCleanupCallback ou EvtDestroyCallback para seus objetos de solicitação, a estrutura chamará essas funções de retorno de chamada para seus objetos de solicitação reservada somente quando excluir as filas de E/S associadas.

Os manipuladores de solicitação do driver podem chamar WdfRequestIsReserved para determinar se objetos de solicitação reservados estão sendo usados.

Para obter mais informações sobre como usar o espaço de contexto do objeto, consulte Espaço de Contexto do Objeto framework.

Se a função de retorno de chamada alocar recursos com êxito, ela deverá retornar STATUS_SUCCESS.

Se ocorrer um erro de alocação de recurso, como uma situação de memória baixa, a função de retorno de chamada deverá retornar um erro status valor. Nesse caso, a estrutura para de alocar objetos de solicitação reservada e usa o valor retornado da função de retorno de chamada como o valor retornado para WdfIoQueueAssignForwardProgressPolicy.

Para obter mais informações sobre a função de retorno de chamada EvtIoAllocateResourcesForReservedRequest , consulte Garantindo o progresso das operações de E/S.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Versão mínima do KMDF 1,9
Cabeçalho wdfio.h (inclua Wdf.h)
IRQL <=DISPATCH_LEVEL

Confira também

EvtIoAllocateRequestResources

WdfIoQueueAssignForwardProgressPolicy

WdfRequestIsReserved