Compartilhar via


Função RxFsdPostRequest (rxprocs.h)

RxFsdPostRequest enfileira o IRP (pacote de solicitação de E/S) especificado por uma estrutura RX_CONTEXT para a fila de trabalho para processamento pelo processo do sistema de arquivos (FSP).

Sintaxe

NTSTATUS RxFsdPostRequest(
  [in] IN PRX_CONTEXT RxContext
);

Parâmetros

[in] RxContext

Um ponteiro para o RX_CONTEXT que contém o IRP a ser enfileirado em um thread de trabalho.

Valor de retorno

RxFsdPostRequest retorna os seguintes valores:

Código de retorno Descrição
STATUS_PENDING
Uma solicitação assíncrona foi feita e foi enfileirada em um thread de trabalho para processamento posterior. O status da solicitação está pendente.

Observações

RxFsdPostRequest normalmente é chamado pelo RDBSS para processar um IRP (pacote de solicitação de E/S) assíncrono. Normalmente, esses IRPs são recebidos pelo RDBSS em resposta a um aplicativo no modo de usuário solicitando operações em um arquivo. Também é possível que outro driver de kernel emita tal IRP.

Se o Flags membro da estrutura de RX_CONTEXT apontado pelo parâmetro RxContext não tiver o RX_CONTEXT_FLAG_NO_PREPOSTING_NEEDED bit definido, RxFsdPostRequest tentará bloquear qualquer espaço de endereço do usuário necessário para determinados tipos de solicitações. As solicitações que resultam nesse comportamento baseiam-se no membro MajorFunction da estrutura RX_CONTEXT apontado por RxContext e incluem o seguinte:

  • IRP_MJ_DIRECTORY CONTROL quando RxContext->MinorFunction é IRP_MN_QUERY_DIRECTORY.
  • IRP_MJ_QUERY_EA
  • IRP_MJ_READ
  • IRP_MJ_SET_EA
  • IRP_MJ_WRITE
O MajorFunction membro do RxContext determinará em qual fila de trabalho essa solicitação será postada. Uma solicitação IRP_MJ_DEVICE_CONTROL em que o membro do Parameters.DeviceIoControl.IoControlCode está IOCTL_REDIR_QUERY_PATH será postada na fila de trabalho atrasada. No caso, o Flags membro do parâmetro RxContext terá o RX_CONTEXT_FLAG_FSP_DELAYED_OVERFLOW_QUEUE bit definido. Todas as outras solicitações são postadas na fila de trabalho crítica e o membro Flags do parâmetro RxContext terá o RX_CONTEXT_FLAG_FSP_CRITICAL_OVERFLOW_QUEUE bit definido.

Se o FileObject membro do IRP não estiver NULL e a solicitação puder ser postada imediatamente para processamento (o limite da fila do dispositivo está vazio), isso ocorrerá. Caso contrário, a solicitação será postada em uma fila de estouro no volume.

Todas as chamadas para RxFsdPostRequest são enfileiradas em um thread de trabalho para chamar a rotina de RxFsdDispatch passando o parâmetro RxContext.

Requisitos

Requisito Valor
da Plataforma de Destino Área de trabalho
cabeçalho rxprocs.h (include Rxprocs.h, Rxcontx.h)
IRQL <= APC_LEVEL

Consulte também

RxFsdDispatch