Freigeben über


RxFsdPostRequest-Funktion (rxprocs.h)

RxFsdPostRequest das von einer RX_CONTEXT Struktur für die Verarbeitung durch den Dateisystemprozess (FSP) angegebene E/A-Anforderungspaket (IRP) in die Arbeitswarteschlange ein.

Syntax

NTSTATUS RxFsdPostRequest(
  [in] IN PRX_CONTEXT RxContext
);

Parameter

[in] RxContext

Ein Zeiger auf die RX_CONTEXT, die den IRP enthält, der in die Warteschlange eines Arbeitsthreads eingereiht werden soll.

Rückgabewert

RxFsdPostRequest die folgenden Werte zurück:

Rückgabecode Beschreibung
STATUS_PENDING
Für die spätere Verarbeitung wurde eine asynchrone Anforderung in die Warteschlange gestellt und an einen Arbeitsthread in die Warteschlange gestellt. Der Status der Anforderung steht aus.

Bemerkungen

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 ein solches IRP ausgibt.

Wenn das Flags-Element der RX_CONTEXT Struktur, auf die durch den RxContext Parameter verwiesen wird, nicht über den RX_CONTEXT_FLAG_NO_PREPOSTING_NEEDED Bitsatz verfügt, versucht RxFsdPostRequest, alle Benutzeradressräume zu sperren, die für bestimmte Arten von Anforderungen erforderlich sind. Die Anforderungen, die zu diesem Verhalten führen, basieren auf dem MajorFunction Member der RX_CONTEXT Struktur, auf das durch RxContext verwiesen wird, und umfassen 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 Mitglied von RxContext- bestimmt, in welcher Arbeitswarteschlange diese Anforderung gepostet wird. Eine IRP_MJ_DEVICE_CONTROL Anforderung, bei der das Parameters.DeviceIoControl.IoControlCode- Mitglied IOCTL_REDIR_QUERY_PATH in die verzögerte Arbeitswarteschlange gepostet wird. Im Fall hat das Flags Member des RxContext- Parameters den RX_CONTEXT_FLAG_FSP_DELAYED_OVERFLOW_QUEUE Bitsatz. Alle anderen Anforderungen werden in die kritische Arbeitswarteschlange gepostet, und der Flags-Member des RxContext- Parameters hat den RX_CONTEXT_FLAG_FSP_CRITICAL_OVERFLOW_QUEUE Bitsatz.

Wenn das FileObject Mitglied des IRP nicht NULL- ist und die Anforderung sofort zur Verarbeitung bereitgestellt werden kann (der Schwellenwert für die Gerätewarteschlange ist leer), tritt dies auf. Andernfalls wird die Anforderung in eine Überlaufwarteschlange auf dem Volume gepostet.

Alle Aufrufe an RxFsdPostRequest- werden an einen Arbeitsthread in die Warteschlange gestellt, um die RxFsdDispatch- Routine aufzurufen, die den RxContext Parameter übergibt.

Anforderungen

Anforderung Wert
Zielplattform- Desktop
Header- rxprocs.h (include Rxprocs.h, Rxcontx.h)
IRQL- <= APC_LEVEL

Siehe auch

RxFsdDispatch-