__RxSynchronizeBlockingOperations-Funktion (rxcontx.h)
__RxSynchronizeBlockingOperations synchronisiert blockierende E/A-Anforderungen mit derselben Arbeitswarteschlange.
Syntax
NTSTATUS __RxSynchronizeBlockingOperations(
[in, out] IN OUT PRX_CONTEXT RxContext,
[in] IN PFCB Fcb,
[in, out] IN OUT PLIST_ENTRY BlockingIoQ,
[in] IN BOOLEAN DropFcbLock
);
Parameter
[in, out] RxContext
Ein Zeiger auf den RX_CONTEXT des zu synchronisierenden Vorgangs.
[in] Fcb
Ein Zeiger auf den FCB.
[in, out] BlockingIoQ
Ein Zeiger auf den LIST_ENTRY für die Warteschlange.
[in] DropFcbLock
Ein boolescher Wert, der angibt, ob die FCB-Ressource freigegeben werden soll. Wenn dieser Parameter TRUE ist, wird die FCB-Ressource freigegeben.
Rückgabewert
__RxSynchronizeBlockingOperations gibt STATUS_SUCCESS nach Erfolg oder einen entsprechenden NTSTATUS-Wert zurück, z. B. einen der folgenden:
Rückgabecode | Beschreibung |
---|---|
|
Die E/A-Anforderung und die zugehörige RX_CONTEXT wurden abgebrochen. |
|
Der RxContext wurde für einen asynchronen Vorgang verwendet, und der RxContext wurde der Warteschlange hinzugefügt. |
Hinweise
Die __RxSynchronizeBlockingOperations Routine synchronisiert das Blockieren von E/A-Anforderungen mit derselben Arbeitswarteschlange. RDBSS verwendet __RxSynchronizeBlockingOperations intern, um Named Pipe-Vorgänge zu synchronisieren. Die Arbeitswarteschlange ist die Warteschlange, auf die von der Dateiobjekterweiterung (FOBX) verwiesen wird, die dem Fcb zugeordnet ist.
Ein Netzwerkminiumleitungsor kann __RxSynchronizeBlockingOperations verwenden, um Vorgänge in einer separaten Warteschlange zu synchronisieren, die vom Netzwerkminiumleitungsor verwaltet wird.
Wenn RxContext für einen asynchronen Vorgang markiert ist, fügt __RxSynchronizeBlockingOperations der Warteschlange den RxContext hinzu und gibt STATUS_PENDING zurück. Wenn RxContext für einen synchronen Vorgang markiert ist, wird __RxSynchronizeBlockingOperations blockiert, und RxContext wird fortgesetzt, wenn ein Aufruf von RxResumeBlockedOperations_Serially erfolgt.
Wenn die blockierende E/A-Anforderung abgebrochen wurde, gibt __RxSynchronizeBlockingOperations STATUS_CANCELLED zurück, um den Fehler anzugeben.
Das SyncEvent-Element der RX_CONTEXT Struktur, auf die RxContext verweist, muss vor dem Aufrufen __RxSynchronizeBlockingOperations zurückgesetzt worden sein. Die FCB-Ressource muss vor dem Aufrufen __RxSynchronizeBlockingOperations gesperrt werden, wenn der DropFcbLock-Parameter auf TRUE festgelegt ist.
Die folgenden beiden Makros werden unter Windows Server 2003 oder höher zum Aufrufen __RxSynchronizeBlockingOperations definiert:
RxSynchronizeBlockingOperations : Ruft auf, wobei der DropFcbLock-Parameter auf FALSE festgelegt ist.
RxSynchronizeBlockingOperationsAndDropFcbLock – ruft auf, wobei der DropFcbLock-Parameter auf TRUE festgelegt ist.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Die __RxSynchronizeBlockingOperations-Routine ist nur unter Windows Server 2003 verfügbar. |
Zielplattform | Desktop |
Kopfzeile | rxcontx.h (einschließlich Rxcontx.h) |
Weitere Informationen
RxDereferenceAndDeleteRxContext_Real