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 |
---|---|
|
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
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 |