Condividi tramite


Funzione RxFsdPostRequest (rxprocs.h)

RxFsdPostRequest accoda il pacchetto di richiesta I/O specificato da una struttura RX_CONTEXT alla coda di lavoro per l'elaborazione dal processo di file system (FSP).

Sintassi

NTSTATUS RxFsdPostRequest(
  [in] IN PRX_CONTEXT RxContext
);

Parametri

[in] RxContext

Puntatore alla RX_CONTEXT contenente l'IRP da accodare a un thread di lavoro.

Valore restituito

RxFsdPostRequest restituisce i valori seguenti:

Codice restituito Descrizione
STATUS_PENDING
È stata effettuata una richiesta asincrona ed è stata accodata a un thread di lavoro per l'elaborazione successiva. Lo stato della richiesta è in sospeso.

Commenti

RxFsdPostRequest viene normalmente chiamato da RDBSS per elaborare un pacchetto di richiesta I/O asincrono (IRP). Questi IRP vengono normalmente ricevuti da RDBSS in risposta a un'applicazione in modalità utente che richiede operazioni su un file. È anche possibile che un altro driver del kernel esecchi tale IRP.

Se il membro Flags della struttura RX_CONTEXT puntato dal parametro RxContext non dispone del set di bit RX_CONTEXT_FLAG_NO_PREPOSTING_NEEDED, RxFsdPostRequest tenterà di bloccare qualsiasi spazio degli indirizzi utente richiesto per determinati tipi di richieste. Le richieste che comportano questo comportamento si basano sul membro MajorFunction della struttura RX_CONTEXT puntata da RxContext e includono quanto segue:

  • 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
Il membro MajorFunction di RxContext determina la coda di lavoro a cui verrà inviata questa richiesta. Una richiesta di IRP_MJ_DEVICE_CONTROL in cui il membro Parameters.DeviceIoControl.IoControlCode è IOCTL_REDIR_QUERY_PATH verrà inviato alla coda di lavoro ritardata. Nel caso, il membro Flags del parametro RxContext avrà il set di bit RX_CONTEXT_FLAG_FSP_DELAYED_OVERFLOW_QUEUE. Tutte le altre richieste vengono inviate alla coda di lavoro critica e il membro Flag del parametro RxContext avrà il set di bit RX_CONTEXT_FLAG_FSP_CRITICAL_OVERFLOW_QUEUE.

Se il membro FileObject dell'IRP non è NULL e la richiesta può essere pubblicata immediatamente per l'elaborazione (la soglia per la coda del dispositivo è vuota), si verificherà questa operazione. In caso contrario, la richiesta verrà inviata a una coda di overflow nel volume.

Tutte le chiamate a RxFsdPostRequest vengono accodate a un thread di lavoro per chiamare la routine RxFsdDispatch passando il parametro RxContext .

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione rxprocs.h (include Rxprocs.h, Rxcontx.h)
IRQL <= APC_LEVEL

Vedi anche

RxFsdDispatch