функция __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 (включая Rxcontx.h) |
См. также раздел
RxDereferenceAndDeleteRxContext_Real