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