RxFsdPostRequest-Funktion (rxprocs.h)
RxFsdPostRequest stellt das von einer RX_CONTEXT Struktur angegebene E/A-Anforderungspaket (IRP) zur Verarbeitung durch den Dateisystemprozess (FSP) in die Workerwarteschlange bereit.
Syntax
NTSTATUS RxFsdPostRequest(
[in] IN PRX_CONTEXT RxContext
);
Parameter
[in] RxContext
Ein Zeiger auf die RX_CONTEXT, die den IRP enthält, der in eine Workerthread-Warteschlange eingereiht werden soll.
Rückgabewert
RxFsdPostRequest gibt die folgenden Werte zurück:
Rückgabecode | Beschreibung |
---|---|
|
Es wurde eine asynchrone Anforderung gestellt, die für die spätere Verarbeitung in einen Workerthread eingereiht wurde. Die status der Anforderung steht aus. |
Hinweise
RxFsdPostRequest wird normalerweise von RDBSS aufgerufen, um ein asynchrones E/A-Anforderungspaket (IRP) zu verarbeiten. Diese IRPs werden normalerweise von RDBSS als Reaktion auf eine Benutzermodusanwendung empfangen, die Vorgänge für eine Datei anfordert. Es ist auch möglich, dass ein anderer Kerneltreiber eine solche IRP ausgibt.
Wenn für das Flags-Element der RX_CONTEXT Struktur, auf die der RxContext-Parameter verweist, das RX_CONTEXT_FLAG_NO_PREPOSTING_NEEDED Bit nicht festgelegt ist, versucht RxFsdPostRequest , jeden Benutzeradressraum zu sperren, der für bestimmte Arten von Anforderungen erforderlich ist. Die Anforderungen, die zu diesem Verhalten führen, basieren auf dem MajorFunction-Member RX_CONTEXT Struktur, auf die von RxContext verwiesen wird, und enthalten Folgendes:
- IRP_MJ_DIRECTORY CONTROL, wenn RxContext->MinorFunction IRP_MN_QUERY_DIRECTORY ist.
- IRP_MJ_QUERY_EA
- IRP_MJ_READ
- IRP_MJ_SET_EA
- IRP_MJ_WRITE
Wenn das FileObject-Element des IRP nicht NULL ist und die Anforderung sofort zur Verarbeitung gesendet werden kann (der Schwellenwert für die Gerätewarteschlange ist leer), tritt dies auf. Andernfalls wird die Anforderung an eine Überlaufwarteschlange auf dem Volume gesendet.
Alle Aufrufe von RxFsdPostRequest werden in einen Workerthread eingereiht, um die RxFsdDispatch-Routineübergabe im RxContext-Parameter aufzurufen.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Desktop |
Kopfzeile | rxprocs.h (include Rxprocs.h, Rxcontx.h) |
IRQL | <= APC_LEVEL |