Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock synchronisiert blockierende E/A-Anforderungen mit derselben Arbeitswarteschlange.
Syntax
NTSTATUS __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock(
_Inout_ PRX_CONTEXT RxContext,
_Inout_ PLIST_ENTRY BlockingIoQ,
_In_ BOOLEAN DropFcbLock
);
Parameter
RxContext [in, out]
Ein Zeiger auf die RX_CONTEXT des vorgangs, der synchronisiert wird.
BlockingIoQ [in, out]
Ein Zeiger auf die LIST_ENTRY für die Warteschlange.
DropFcbLock [in]
Ein boolescher Wert, der angibt, ob die FCB-Ressource freigegeben werden soll. Wenn dieser Parameter TRUE ist, wird die FCB-Ressource freigegeben.
Rückgabewert
__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock gibt STATUS_SUCCESS für erfolg oder einen geeigneten NTSTATUS-Wert zurück, z. B. einen der folgenden:
| Rückgabecode | Beschreibung |
|---|---|
| STATUS_CANCELLED | Die E/A-Anforderung und die zugeordnete 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 __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock Routine synchronisiert blockierende E/A-Anforderungen mit derselben Arbeitswarteschlange. RDBSS verwendet intern __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock , um Named Pipe-Vorgänge zu synchronisieren. Die Arbeitswarteschlange ist die Warteschlange, auf die von der Dateiobjekterweiterung (FILE Object Extension, FOBX) verwiesen wird, die dem pFcb-Member der RX_CONTEXT Struktur zugeordnet ist, auf die RxContext verweist.
Ein Netzwerk-Mini-Redirector kann __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock verwenden, um Vorgänge in einer separaten Warteschlange zu synchronisieren, die vom Netzwerk-Mini-Redirector verwaltet wird.
Wenn RxContext für einen asynchronen Vorgang markiert ist, fügt __RxSynchronizeBlockingOperationsMaybeDroppingFcbLockRxContext der Warteschlange hinzu und gibt STATUS_PENDING zurück. Wenn RxContext für einen synchronen Vorgang markiert ist, wird __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock blockiert, und RxContext wird fortgesetzt, wenn ein Aufruf von RxResumeBlockedOperations_Serially erfolgt.
Wenn die blockierende E/A-Anforderung abgebrochen wurde, gibt __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock STATUS_CANCELLED zurück, um den Fehler anzugeben.
Das SyncEvent-Element der RX_CONTEXT-Struktur, auf die RxContext verweist, muss zurückgesetzt worden sein, bevor __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock aufgerufen wird. Die FCB-Ressource muss gesperrt werden , bevor __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock aufgerufen wird, wenn der DropFcbLock-Parameter auf TRUE festgelegt ist.
Die folgenden beiden Makros sind unter Windows XP und Windows 2000 zum Aufrufen __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock definiert:
RxSynchronizeBlockingOperations ruft auf, wobei der DropFcbLock-Parameter auf FALSE festgelegt ist.
RxSynchronizeBlockingOperationsAndDropFcbLock – ruft auf, wobei der DropFcbLock-Parameter auf TRUE festgelegt ist.
Anforderungen
Zielplattform |
Desktop |
Version |
Die __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock-Routine ist nur unter Windows XP und Windows 2000 verfügbar. |
Header |
Rxcontx.h (einschließen von Rxcontx.h) |
Weitere Informationen
RxDereferenceAndDeleteRxContext_Real