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
STATUS_PENDING
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
Das MajorFunction-Element von RxContext bestimmt, an welche Arbeitswarteschlange diese Anforderung gesendet wird. Eine IRP_MJ_DEVICE_CONTROL Anforderung, bei der der Parameter.DeviceIoControl.IoControlCode-Member IOCTL_REDIR_QUERY_PATH ist, wird an die verzögerte Arbeitswarteschlange gesendet. In diesem Fall ist für das Flags-Element des RxContext-Parameters das RX_CONTEXT_FLAG_FSP_DELAYED_OVERFLOW_QUEUE Bit festgelegt. Alle anderen Anforderungen werden an die kritische Arbeitswarteschlange gesendet, und für den Flags-Member des RxContext-Parameters ist das RX_CONTEXT_FLAG_FSP_CRITICAL_OVERFLOW_QUEUE Bit festgelegt.

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

Weitere Informationen

RxFsdDispatch