Freigeben über


__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
STATUS_CANCELLED
Die E/A-Anforderung und die zugehörige RX_CONTEXT wurden abgebrochen.
STATUS_PENDING
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

RxCompleteRequest_Real

RxCreateRxContext

RxDereference

RxDereferenceAndDeleteRxContext_Real

RxInitializeContext

RxPrepareContextForReuse

RxResumeBlockedOperations_Serially

__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock