Поделиться через


функция __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, например одно из следующих значений:

Возвращаемый код Описание
STATUS_CANCELLED
Запрос ввода-вывода и связанный RX_CONTEXT был отменен.
STATUS_PENDING
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)

См. также

RxCompleteRequest_Real

RxCreateRxContext

RxDereference

RxDereferenceAndDeleteRxContext_Real

RxInitializeContext

RxPrepareContextForReuse

RxResumeBlockedOperations_Serially

__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock