__RxSynchronizeBlockingOperations関数 (rxcontx.h)
__RxSynchronizeBlockingOperations は、ブロックしている I/O 要求を同じ作業キューに同期します。
構文
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 値を返します。
リターン コード | 説明 |
---|---|
|
I/O 要求と関連付けられたRX_CONTEXTが取り消されました。 |
|
RxContext は非同期操作用であり、RxContext がキューに追加されました。 |
注釈
__RxSynchronizeBlockingOperations ルーチンは、ブロッキング I/O 要求を同じ作業キューに同期します。 RDBSS では 、__RxSynchronizeBlockingOperations を内部的に使用して、名前付きパイプ操作を同期します。 作業キューは、 Fcb に関連付けられているファイル オブジェクト拡張子 (FOBX) によって参照されるキューです。
ネットワーク ミニ リダイレクターでは、 __RxSynchronizeBlockingOperations を使用して、ネットワーク ミニ リダイレクターによって管理されている別のキューで操作を同期できます。
RxContext が非同期操作に対してマークされている場合、__RxSynchronizeBlockingOperationsは RxContext をキューに追加し、STATUS_PENDINGを返します。 RxContext が同期操作用にマークされている場合、__RxSynchronizeBlockingOperationsはブロックされ、RxResumeBlockedOperations_Seriallyへの呼び出しが行われると RxContext が再開されます。
ブロック中の I/O 要求が取り消された場合、 __RxSynchronizeBlockingOperations はエラーを示すSTATUS_CANCELLEDを返します。
RxContext が指すRX_CONTEXT構造体の SyncEvent メンバーは、__RxSynchronizeBlockingOperationsを呼び出す前にリセットされている必要があります。 DropFcbLock パラメーターが TRUE に設定されている場合は、__RxSynchronizeBlockingOperationsを呼び出す前に FCB リソースをロックする必要があります。
Windows Server 2003 以降では、__RxSynchronizeBlockingOperationsを呼び出すための次の 2 つのマクロ が定義されています。
RxSynchronizeBlockingOperations - DropFcbLock パラメーターを FALSE に設定して を呼び出します。
RxSynchronizeBlockingOperationsAndDropFcbLock - DropFcbLock パラメーターを TRUE に設定して を呼び出します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | __RxSynchronizeBlockingOperations ルーチンは、Windows Server 2003 でのみ使用できます。 |
対象プラットフォーム | デスクトップ |
Header | rxcontx.h (Rxcontx.h を含む) |
こちらもご覧ください
RxDereferenceAndDeleteRxContext_Real