次の方法で共有


RxPrepareContextForReuse 関数 (rxcontx.h)

RxPrepareContextForReuse は、作成されたすべての操作固有の割り当てと取得 (RX_CONTEXT構造体への ReferenceCount メンバーが 0 に設定されている) をリセットすることで、再利用のためにRX_CONTEXTデータ構造を準備します。 IRP から取得されたパラメーターは変更されません。

構文

void RxPrepareContextForReuse(
  [in, out] IN OUT PRX_CONTEXT RxContext
);

パラメーター

[in, out] RxContext

RX_CONTEXT構造体へのポインター。

戻り値

なし

解説

RxPrepareContextForReuse ルーチンは、ReferenceCount メンバーを 0 に設定する前に、RX_CONTEXT構造体内のいくつかの操作固有のメンバーが NULL であることを確認します。 満たす必要があるこれらの操作固有のテストには、次のものが含まれます。

  • 関連付けられた IRP の MajorFunction メンバーがIRP_MJ_CREATE場合、 Create.CanonicalNameBuffer メンバーは NULL である必要があります。
  • 関連付けられている IRP の MajorFunction メンバーがIRP_MJ_READまたはIRP_MJ_WRITE場合、 RxContextSerializationQLinks.Flink および RxContextSerializationQLinks.Blink メンバーは NULL である必要があります。
上記の条件のいずれかが満たされない場合、 RxPrepareContextForReuse により、チェックされたビルドでシステムが ASSERT されます。

RxPrepareContextForReuse ルーチンは、通常、RX_CONTEXT構造体を直接再初期化するネットワーク ミニ リダイレクター ドライバーでのみ使用されます。

要件

要件
対象プラットフォーム デスクトップ
Header rxcontx.h (Rxprocs.h rxcontx.h を含む)
IRQL <= APC_LEVEL

こちらもご覧ください

RxCompleteRequest

RxCompleteRequest_Real

RxCreateRxContext

RxDereference

RxDereferenceAndDeleteRxContext_Real

RxInitializeContext

RxResumeBlockedOperations_Serially

__RxSynchronizeBlockingOperations

__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock