функция __RxSynchronizeBlockingOperations (rxcontx.h)
__RxSynchronizeBlockingOperations синхронизирует блокирующие запросы ввода-вывода в ту же рабочую очередь.
Синтаксис
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 возвращает STATUS_SUCCESS успешно или соответствующее значение NTSTATUS, например одно из следующих значений:
Возвращаемый код | Описание |
---|---|
|
Запрос ввода-вывода и связанный RX_CONTEXT был отменен. |
|
RxContext была для асинхронной операции, а RxContext добавлена в очередь. |
Замечания
Подпрограмма __RxSynchronizeBlockingOperations синхронизирует блокирующие запросы ввода-вывода в ту же рабочую очередь. RDBSS использует __RxSynchronizeBlockingOperations внутренне для синхронизации именованных операций канала. Рабочая очередь — это очередь, на которую ссылается расширение объекта файла (FOBX), связанное с Fcb.
Мини-перенаправление сети может использовать __RxSynchronizeBlockingOperations для синхронизации операций в отдельной очереди, поддерживаемой мини-перенаправлением сети.
Если RxContext помечен для асинхронной операции, __RxSynchronizeBlockingOperations добавит RxContext в очередь и возвращает STATUS_PENDING. Если RxContext помечены для синхронной операции, __RxSynchronizeBlockingOperations будет блокироваться и RxContext возобновляется при вызове RxResumeBlockedOperations_Serially.
Если запрос на блокировку ввода-вывода был отменен, __RxSynchronizeBlockingOperations возвращает STATUS_CANCELLED, чтобы указать ошибку.
Элемент SyncEvent структуры RX_CONTEXT, на который указывает RxContext, должен быть сброшен перед вызовом __RxSynchronizeBlockingOperations. Ресурс FCB должен быть заблокирован перед вызовом __RxSynchronizeBlockingOperations, если для параметра DropFcbLock задано значение TRUE.
Следующие два макроса определены в Windows Server 2003 или более поздней версии для вызова __RxSynchronizeBlockingOperations:
RxSynchronizeBlockingOperations — вызовы с параметром DropFcbLock значением FALSE.
RxSynchronizeBlockingOperationsAndDropFcbLock — вызовы с параметром DropFcbLock, равным TRUE.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Подпрограмма __RxSynchronizeBlockingOperations доступна только в Windows Server 2003. |
целевая платформа | Настольный |
заголовка | rxcontx.h (include Rxcontx.h) |
См. также
RxDereferenceAndDeleteRxContext_Real