__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock-Funktion
__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