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