__RxSynchronizeBlockingOperations函式 (rxcontx.h)

__RxSynchronizeBlockingOperations 會將封鎖I/O要求同步處理至相同的工作佇列。

語法

NTSTATUS __RxSynchronizeBlockingOperations(
  [in, out] IN OUT PRX_CONTEXT RxContext,
  [in]      IN PFCB            Fcb,
  [in, out] IN OUT PLIST_ENTRY BlockingIoQ,
  [in]      IN BOOLEAN         DropFcbLock
);

參數

[in, out] RxContext

正在同步處理之作業RX_CONTEXT的指標。

[in] Fcb

FCB 的指標。

[in, out] BlockingIoQ

佇列LIST_ENTRY的指標。

[in] DropFcbLock

布爾值,指出是否應該釋放FCB資源。 如果此參數為 TRUE,則會釋放 FCB 資源。

傳回值

__RxSynchronizeBlockingOperations 在成功或適當的NTSTATUS值上傳回STATUS_SUCCESS,例如下列其中一項:

傳回碼 Description
STATUS_CANCELLED
已取消 I/O 要求和相關聯的RX_CONTEXT。
STATUS_PENDING
RxContext 用於異步操作,且 RxContext 已新增至佇列。

備註

__RxSynchronizeBlockingOperations例程會將封鎖 I/O 要求同步處理至相同的工作佇列。 RDBSS 會在內部使用 __RxSynchronizeBlockingOperations 來同步命名管道作業。 工作佇列是與 Fcb 相關聯的檔案物件擴展名 (FOBX) 所參考的佇列。

網路迷你重新導向器可能會使用 __RxSynchronizeBlockingOperations 來同步處理網路迷你重新導向器所維護之個別佇列上的作業。

如果 RxContext 標示為異步操作, __RxSynchronizeBlockingOperations 會將 RxContext 新增至佇列,並傳回STATUS_PENDING。 如果 RxContext 標示為同步作業,__RxSynchronizeBlockingOperations將會封鎖,並在呼叫 RxResumeBlockedOperations_Serially 時繼續 RxContext

如果封鎖 I/O 要求已取消, __RxSynchronizeBlockingOperations 會傳回STATUS_CANCELLED以指出錯誤。

RxContext 所指向之RX_CONTEXT結構的 SyncEvent 成員必須先重設,才能呼叫 __RxSynchronizeBlockingOperations。 如果DropFcbLock參數設定為TRUE,則必須鎖定FCB資源,才能呼叫 __RxSynchronizeBlockingOperations

下列兩個宏定義於 Windows Server 2003 或更新版本上,以呼叫 __RxSynchronizeBlockingOperations

RxSynchronizeBlockingOperations - 將 DropFcbLock 參數設定為 FALSE 的呼叫。

RxSynchronizeBlockingOperationsAndDropFcbLock - 呼叫 DropFcbLock 參數設為 TRUE

規格需求

需求
最低支援的用戶端 __RxSynchronizeBlockingOperations例程僅適用於 Windows Server 2003。
目標平台 桌面
標頭 rxcontx.h (包含 Rxcontx.h)

另請參閱

RxCompleteRequest_Real

RxCreateRxContext

RxDereference

RxDereferenceAndDeleteRxContext_Real

RxInitializeContext

RxPrepareContextForReuse

RxResumeBlockedOperations_Serially

__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock