__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 が非同期操作としてマークされている場合、__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock は RxContext をキューに追加し、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 をインクルード) |
関連項目
RxDereferenceAndDeleteRxContext_Real