次の方法で共有


__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock 関数

__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock は、ブロッキング I/O 要求を同じ作業キューに同期します。

構文

NTSTATUS __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock(
  _Inout_ PRX_CONTEXT RxContext,
  _Inout_ PLIST_ENTRY BlockingIoQ,
  _In_    BOOLEAN     DropFcbLock
);

パラメーター

RxContext [in, out]
同期する操作の RX_CONTEXT を指すポインター。

BlockingIoQ [in, out]
キューの LIST_ENTRY を指すポインター。

DropFcbLock [in]
FCB リソースを解放する必要があるかどうかを示すブール値。 このパラメーターが TRUE の場合、FCB リソースは解放されます。

戻り値

__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock は、成功した場合の STATUS_SUCCESS や、次のいずれかのような該当する NTSTATUS 値を返します。

リターン コード 説明
STATUS_CANCELLED

I/O 要求と関連付けられている RX_CONTEXT が取り消されました。

STATUS_PENDING

RxContext は非同期操作であり、RxContext はキューに追加されました。

解説

__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock ルーチンは、ブロッキング I/O 要求を同じ作業キューに同期します。 RDBSS は、内部で __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock を使用して、名前付きパイプ操作を同期します。 作業キューは、RxContext が指す RX_CONTEXT 構造体の pFcb メンバーに関連付けられているファイル オブジェクト拡張 (FOBX) で参照されるキューです。

ネットワーク ミニリダイレクターは、__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock を使用して、ネットワーク ミニリダイレクターが維持する個別のキューで操作を同期できます。

RxContext が非同期操作としてマークされている場合、__RxSynchronizeBlockingOperationsMaybeDroppingFcbLockRxContext をキューに追加し、STATUS_PENDING を返します。 RxContext が同期操作としてマークされている場合、__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock はブロックされ、RxResumeBlockedOperations_Serially への呼び出しが行われると RxContext が再開されます。

ブロッキング I/O 要求が取り消された場合、__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock はエラーを示す STATUS_CANCELLED を返します。

RxContext が指す RX_CONTEXT 構造体の SyncEvent メンバーは、__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock を呼び出す前にリセットされている必要があります。 DropFcbLock パラメーターが TRUE に設定されている場合は、__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock を呼び出す前に FCB リソースをロックする必要があります。

Windows XP と Windows 2000 では、__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock を呼び出すための次の 2 つのマクロが定義されています。

RxSynchronizeBlockingOperations - DropFcbLock パラメーターを FALSE に設定して呼び出します。

RxSynchronizeBlockingOperationsAndDropFcbLock - DropFcbLock パラメーターを TRUE に設定して呼び出します。

要件

対象プラットフォーム

デスクトップ

バージョン

__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock ルーチンは、Windows XP および Windows 2000 でのみ使用できます。

ヘッダー

Rxcontx.h (Rxcontx.h をインクルード)

関連項目

RxCompleteRequest_Real

RxCreateRxContext

RxDereference

RxDereferenceAndDeleteRxContext_Real

RxInitializeContext

RxPrepareContextForReuse

RxResumeBlockedOperations_Serially

__RxSynchronizeBlockingOperations