Condividi tramite


Funzione RxFsdPostRequest (rxprocs.h)

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

Sintassi

NTSTATUS RxFsdPostRequest(
  [in] IN PRX_CONTEXT RxContext
);

Parametri

[in] RxContext

Puntatore al 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 un'elaborazione successiva. Lo stato della richiesta è in sospeso.

Osservazioni

RxFsdPostRequest viene in genere chiamato da RDBSS per elaborare un pacchetto di richiesta I/O asincrono. Questi runtime di integrazione 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 kernel rilasci tale IRP.

Se il Flag membro della struttura RX_CONTEXT a cui punta il parametro RxContext non dispone del RX_CONTEXT_FLAG_NO_PREPOSTING_NEEDED bit impostato, RxFsdPostRequest tenterà di bloccare qualsiasi spazio degli indirizzi utente necessario per determinati tipi di richieste. Le richieste che generano questo comportamento si basano sul membro MajorFunction della struttura RX_CONTEXT a cui punta RxContext e includono quanto segue:

  • IRP_MJ_DIRECTORY CONTROL quando viene IRP_MN_QUERY_DIRECTORY RxContext->MinorFunction.
  • IRP_MJ_QUERY_EA
  • IRP_MJ_READ
  • IRP_MJ_SET_EA
  • IRP_MJ_WRITE
Il membro MajorFunction di RxContext determinerà la coda di lavoro in cui verrà inviata la richiesta. Una richiesta IRP_MJ_DEVICE_CONTROL in cui il IOCTL_REDIR_QUERY_PATH membro Parameters.DeviceIoControl.IoControlCode viene inviato alla coda di lavoro ritardata. Nel caso, il Flags membro del parametro RxContext avrà il RX_CONTEXT_FLAG_FSP_DELAYED_OVERFLOW_QUEUE bit impostato. Tutte le altre richieste vengono inviate alla coda di lavoro critica e il membro Flags del parametro RxContext avrà il RX_CONTEXT_FLAG_FSP_CRITICAL_OVERFLOW_QUEUE bit impostato.

Se il FileObject membro di IRP non è NULL e la richiesta può essere inviata immediatamente per l'elaborazione (la soglia per la coda del dispositivo è vuota), si verificherà questo problema. 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 il RxFsdDispatch routine passando il parametro RxContext.

Fabbisogno

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

Vedere anche

RxFsdDispatch