__RxSynchronizeBlockingOperations-Funktion (rxcontx.h)
__RxSynchronizeBlockingOperations synchronisiert das Blockieren von 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 die RX_CONTEXT des zu synchronisierenden Vorgangs.
[in] Fcb
Ein Zeiger auf den FCB.
[in, out] BlockingIoQ
Ein Zeiger auf die LIST_ENTRY für die Warteschlange.
[in] DropFcbLock
Ein boolescher Wert, der angibt, ob die FCB-Ressource freigegeben werden soll. Wenn dieser Parameter TRUEist, wird die FCB-Ressource freigegeben.
Rückgabewert
__RxSynchronizeBlockingOperations gibt STATUS_SUCCESS für erfolg oder einen geeigneten NTSTATUS-Wert zurück, z. B. einen der folgenden:
Rückgabecode | Beschreibung |
---|---|
|
Die E/A-Anforderung und die zugeordnete RX_CONTEXT wurde abgebrochen. |
|
Die RxContext- war für einen asynchronen Vorgang vorgesehen, und die RxContext- wurde der Warteschlange hinzugefügt. |
Bemerkungen
Die __RxSynchronizeBlockingOperations Routine synchronisiert das Blockieren von E/A-Anforderungen mit derselben Arbeitswarteschlange. RDBSS verwendet __RxSynchronizeBlockingOperations intern, um benannte Rohrvorgänge zu synchronisieren. Die Arbeitswarteschlange ist die Warteschlange, auf die durch die Dateiobjekterweiterung (FOBX) verwiesen wird, die dem Fcb-zugeordnet ist.
Ein Netzwerkminiumleitungsmodul kann __RxSynchronizeBlockingOperations verwenden, um Vorgänge in einer separaten Warteschlange zu synchronisieren, die vom Netzwerkminiumleitungsmodul verwaltet wird.
Wenn RxContext- für einen asynchronen Vorgang markiert ist, fügt __RxSynchronizeBlockingOperations der Warteschlange die RxContext- hinzu und gibt STATUS_PENDING zurück. Wenn RxContext- für einen synchronen Vorgang markiert ist, wird __RxSynchronizeBlockingOperations blockiert und RxContext- fortgesetzt, wenn ein Aufruf an RxResumeBlockedOperations_Seriallyerfolgt.
Wenn die blockierende E/A-Anforderung abgebrochen wurde, gibt __RxSynchronizeBlockingOperations STATUS_CANCELLED zurück, um den Fehler anzugeben.
Das SyncEvent Mitglied der RX_CONTEXT Struktur, auf die von RxContext- verwiesen wurde, muss zurückgesetzt worden sein, bevor __RxSynchronizeBlockingOperationsaufgerufen wird. Die FCB-Ressource muss gesperrt werden, bevor __RxSynchronizeBlockingOperations aufgerufen wird, wenn der DropFcbLock Parameter auf TRUEfestgelegt ist.
Die folgenden beiden Makros werden unter Windows Server 2003 oder höher zum Aufrufen von __RxSynchronizeBlockingOperationsdefiniert:
RxSynchronizeBlockingOperations- – Aufrufe mit dem DropFcbLock Parameter, der auf FALSEfestgelegt ist.
RxSynchronizeBlockingOperationsAndDropFcbLock - Aufrufe mit dem DropFcbLock Parameter, der auf TRUEfestgelegt ist.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Die __RxSynchronizeBlockingOperations Routine ist nur unter Windows Server 2003 verfügbar. |
Zielplattform- | Desktop |
Header- | rxcontx.h (include Rxcontx.h) |
Siehe auch
RxDereferenceAndDeleteRxContext_Real