次の方法で共有


RX_CONTEXT構造体 (rxcontx.h)

RX_CONTEXT構造体は、RDBSS、ネットワーク ミニ リダイレクター、およびファイル システムで使用する IRP をカプセル化します。 RX_CONTEXT構造体は、ネットワーク ミニ リダイレクターによって処理されている間に IRP を記述し、IRP の完了時にグローバル リソースを解放できるようにする状態情報が含まれています。

構文

typedef struct _RX_CONTEXT {
  NODE_TYPE_CODE         NodeTypeCode;
  NODE_BYTE_SIZE         NodeByteSize;
  __volatile ULONG       ReferenceCount;
  LIST_ENTRY             ContextListEntry;
  UCHAR                  MajorFunction;
  UCHAR                  MinorFunction;
  BOOLEAN                PendingReturned;
  BOOLEAN                PostRequest;
  PDEVICE_OBJECT         RealDevice;
  PIRP                   CurrentIrp;
  PIO_STACK_LOCATION     CurrentIrpSp;
  PMRX_FCB               pFcb;
  PMRX_FOBX              pFobx;
  PMRX_SRV_OPEN          pRelevantSrvOpen;
  PNON_PAGED_FCB         NonPagedFcb;
  PRDBSS_DEVICE_OBJECT   RxDeviceObject;
  PETHREAD               OriginalThread;
  PETHREAD               LastExecutionThread;
  __volatile PVOID       LockManagerContext;
  PVOID                  RdbssDbgExtension;
  RX_SCAVENGER_ENTRY     ScavengerEntry;
  ULONG                  SerialNumber;
  ULONG                  FobxSerialNumber;
  ULONG                  Flags;
  BOOLEAN                FcbResourceAcquired;
  BOOLEAN                FcbPagingIoResourceAcquired;
  UCHAR                  MustSucceedDescriptorNumber;
  union {
    struct {
      union {
        NTSTATUS StoredStatus;
        PVOID    StoredStatusAlignment;
      };
      ULONG_PTR InformationToReturn;
    };
    IO_STATUS_BLOCK IoStatusBlock;
  };
  union {
    ULONGLONG ForceLonglongAligmentDummyField;
    PVOID     MRxContext[MRX_CONTEXT_FIELD_COUNT];
  };
  PVOID                  WriteOnlyOpenRetryContext;
  PMRX_CALLDOWN          MRxCancelRoutine;
  PRX_DISPATCH           ResumeRoutine;
  RX_WORK_QUEUE_ITEM     WorkQueueItem;
  LIST_ENTRY             OverflowListEntry;
  KEVENT                 SyncEvent;
  LIST_ENTRY             BlockedOperations;
  PFAST_MUTEX            BlockedOpsMutex;
  LIST_ENTRY             RxContextSerializationQLinks;
  union {
    struct {
      union {
        FS_INFORMATION_CLASS   FsInformationClass;
        FILE_INFORMATION_CLASS FileInformationClass;
      };
      PVOID   Buffer;
      union {
        LONG Length;
        LONG LengthRemaining;
      };
      BOOLEAN ReplaceIfExists;
      BOOLEAN AdvanceOnly;
    } Info;
    struct {
      UNICODE_STRING       SuppliedPathName;
      NET_ROOT_TYPE        NetRootType;
      PIO_SECURITY_CONTEXT pSecurityContext;
    } PrefixClaim;
  };
  union {
    struct {
      NT_CREATE_PARAMETERS NtCreateParameters;
      ULONG                ReturnedCreateInformation;
      PWCH                 CanonicalNameBuffer;
      PRX_PREFIX_ENTRY     NetNamePrefixEntry;
      PMRX_SRV_CALL        pSrvCall;
      PMRX_NET_ROOT        pNetRoot;
      PMRX_V_NET_ROOT      pVNetRoot;
      PVOID                EaBuffer;
      ULONG                EaLength;
      ULONG                SdLength;
      ULONG                PipeType;
      ULONG                PipeReadMode;
      ULONG                PipeCompletionMode;
      USHORT               Flags;
      NET_ROOT_TYPE        Type;
      UCHAR                RdrFlags;
      BOOLEAN              FcbAcquired;
      BOOLEAN              TryForScavengingOnSharingViolation;
      BOOLEAN              ScavengingAlreadyTried;
      BOOLEAN              ThisIsATreeConnectOpen;
      BOOLEAN              TreeConnectOpenDeferred;
      UNICODE_STRING       TransportName;
      UNICODE_STRING       UserName;
      UNICODE_STRING       Password;
      UNICODE_STRING       UserDomainName;
    } Create;
    struct {
      ULONG   FileIndex;
      BOOLEAN RestartScan;
      BOOLEAN ReturnSingleEntry;
      BOOLEAN IndexSpecified;
      BOOLEAN InitialQuery;
    } QueryDirectory;
    struct {
      PMRX_V_NET_ROOT pVNetRoot;
    } NotifyChangeDirectory;
    struct {
      PUCHAR  UserEaList;
      ULONG   UserEaListLength;
      ULONG   UserEaIndex;
      BOOLEAN RestartScan;
      BOOLEAN ReturnSingleEntry;
      BOOLEAN IndexSpecified;
    } QueryEa;
    struct {
      SECURITY_INFORMATION SecurityInformation;
      ULONG                Length;
    } QuerySecurity;
    struct {
      SECURITY_INFORMATION SecurityInformation;
      PSECURITY_DESCRIPTOR SecurityDescriptor;
    } SetSecurity;
    struct {
      ULONG                       Length;
      PSID                        StartSid;
      PFILE_GET_QUOTA_INFORMATION SidList;
      ULONG                       SidListLength;
      BOOLEAN                     RestartScan;
      BOOLEAN                     ReturnSingleEntry;
      BOOLEAN                     IndexSpecified;
    } QueryQuota;
    struct {
      ULONG Length;
    } SetQuota;
    struct {
      PV_NET_ROOT VNetRoot;
      PSRV_CALL   SrvCall;
      PNET_ROOT   NetRoot;
    } DosVolumeFunction;
    struct {
      ULONG         FlagsForLowIo;
      LOWIO_CONTEXT LowIoContext;
    };
  };
  PWCH                   AlsoCanonicalNameBuffer;
  PUNICODE_STRING        LoudCompletionString;
  __volatile LONG        AcquireReleaseFcbTrackerX;
  __volatile ULONG       TrackerHistoryPointer;
  RX_FCBTRACKER_CALLINFO TrackerHistory[RDBSS_TRACKER_HISTORY_SIZE];
  ULONG                  ShadowCritOwner;
} RX_CONTEXT, *PRX_CONTEXT;

メンバー

NodeTypeCode

RX_CONTEXT構造体に使用される一意のノード タイプ。 RDBSS で使用されるすべての主要な構造体の種類 (RX_CONTEXT、SRV_CALL、NET_ROOT、V_NET_ROOT、SRV_OPEN、FCB、FOBX など) には、デバッグに使用できる nodetype.h インクルード ファイルで定義された一意の 2 バイト のノード型コードがあります。 RDBSS は、 RxInitializeContext ルーチンでRX_CONTEXTが初期化されるときに、このメンバーをRDBSS_NTC_RX_CONTEXTに設定します。 ネットワーク ミニ リダイレクター ドライバーが他のメソッドを使用してRX_CONTEXT構造体を初期化する場合は、このメンバーを設定する必要があります。

RDBSS では、RDBSS によって使用されるすべての構造体の標準ヘッダーの一部として、このメンバーが定義されます。

NodeByteSize

この構造体のサイズ (バイト単位)。 RDBSS は、 rxInitializeContext ルーチンでRX_CONTEXTが初期化されるときに、このメンバーを sizeof( RX_CONTEXT) に設定します。 ネットワーク ミニ リダイレクター ドライバーが他のメソッドを使用してRX_CONTEXT構造体を初期化する場合は、このメンバーを設定する必要があります。

RDBSS では、RDBSS によって使用されるすべての構造体の標準ヘッダーの一部として、このメンバーが定義されます。

ReferenceCount

この構造体が割り当てられた後の参照カウント。 RDBSS は、 rxInitializeContext ルーチンでRX_CONTEXTが割り当てられ、初期化されるときに、このメンバーを 1 に設定します。 ネットワーク ミニ リダイレクター ドライバーが他のメソッドを使用してRX_CONTEXT構造体を初期化する場合は、このメンバーを設定する必要があります。

RDBSS では、RDBSS によって使用されるすべての構造体の標準ヘッダーの一部として、このメンバーが定義されます。

ContextListEntry

このRX_CONTEXTをアクティブなRX_CONTEXTSの一覧に接続するリスト エントリ。

MajorFunction

このRX_CONTEXTによってカプセル化された IRP の主要な関数。

MinorFunction

このRX_CONTEXTによってカプセル化された IRP のマイナー関数。

PendingReturned

TRUE に設定されている場合は、RDBSS またはドライバーが保留中の IRP をマークしたことを指定します。 各 IoCompletion ルーチンは、このフラグの値をチェックする必要があります。 フラグが TRUE で、 IoCompletion ルーチンがSTATUS_MORE_PROCESSING_REQUIREDを返さない場合、ルーチンは IoMarkIrpPending を呼び出して、保留中の状態をデバイス スタックの上のドライバーに伝達する必要があります。 このメンバーは、IRP の同じフィールドに似ています。

RDBSS では、ネットワーク ミニ リダイレクター ドライバーを呼び出す前に、常にこのメンバーを TRUE に設定します。

PostRequest

TRUE に設定すると、関連付けられた要求が RDBSS ワーカー スレッドにポストされるかどうかを示します。 ネットワーク ミニ リダイレクターは、このメンバーを TRUE に設定して、この要求をファイル システム プロセス (FSP) に投稿することを示すことができます。

RealDevice

ターゲット ネットワーク ミニ リダイレクター ドライバーのデバイス オブジェクトへのポインター。 RDBSS は、 RxInitializeContext ルーチンでRX_CONTEXTが割り当てられている場合に、ネットワーク ミニ リダイレクター ドライバーのデバイス オブジェクトにこのメンバーを設定します。 このメンバーは、IRP スタックから FileObject-DeviceObject> メンバーからコピーされます。 ネットワーク ミニ リダイレクターのデバイス オブジェクトも RxDeviceObject 構造体メンバーに格納されます。

RealDevice メンバーは現在 RDBSS では使用されていませんが、ネットワーク ミニ リダイレクターで使用できます。

CurrentIrp

元の IRP へのポインター。 このメンバーは、ネットワーク ミニ リダイレクター ドライバーでは使用しないでください。

CurrentIrpSp

IRP スタックの場所へのポインター。

pFcb

この IRP に関連付けられているファイル制御ブロック (FCB) へのポインター。

pFobx

この IRP に関連付けられているファイル オブジェクト拡張子 (FOBX) へのポインター。

pRelevantSrvOpen

関連付けられているサーバーへのポインター open(SRV_OPEN) for this IRP。

NonPagedFcb

この IRP に関連付けられている非ページ ファイル制御ブロック (FCB) へのポインター。

RxDeviceObject

ワーカー キュー アルゴリズムに必要なターゲット ネットワーク ミニ リダイレクター ドライバーのRDBSS_DEVICE_OBJECTへのポインター。 RDBSS は、 RxInitializeContext ルーチンでRX_CONTEXTが初期化されるときに、このメンバーをネットワーク ミニ リダイレクターのRDBSS_DEVICE_OBJECTに設定します。 RxDeviceObject 構造体には、ネットワーク ミニ リダイレクター ドライバーのデバイス オブジェクトを含む DeviceObject メンバーが含まれています。これは、RX_CONTEXTの RealDevice メンバーと同じです。

OriginalThread

要求が開始された元のスレッドへのポインター。

LastExecutionThread

スレッドがファイル システム プロセスにポストされた場合に、RX_CONTEXTに関連付けられた処理が最後に実行されたスレッドへのポインター。

LockManagerContext

ロック マネージャー コンテキストへのポインター。 このメンバーは内部使用のために予約されています。

RdbssDbgExtension

情報をデバッグするために RDBSS に指定されたコンテキストへのポインター。 このメンバーは内部使用のために予約されています。

ScavengerEntry

清掃する項目の一覧へのポインター。 このメンバーは内部使用のために予約されています。

SerialNumber

このRX_CONTEXT構造体のシリアル番号。 RDBSS によって初期化されたすべての構造体には、構造体が最初に初期化されるときにシリアル番号が割り当てられます。 このシリアル番号は、値が設定される前に 1 ずつインクリメントされる数値です。 RDBSS は、 RxInitializeContext ルーチンでRX_CONTEXTが初期化されるときに、このメンバーを設定します。 RDBSS

FobxSerialNumber

関連付けられている FOBX 構造体のシリアル番号。 RDBSS によって初期化されたすべての構造体には、構造体が最初に初期化されるときにシリアル番号が割り当てられます。 このメンバーは、ネットワーク ミニ リダイレクターで使用して、複数の呼び出しが同じ大きな操作の一部であり、キャッシュ可能かどうかを確認できます。

Flags

このRX_CONTEXT構造体のフラグのビットマスク。

FcbResourceAcquired

TRUE に設定すると、このメンバーは、この操作に対して FCB リソースが取得されたことを指定します。 FCB リソースは、FCB の操作に関連付けられているロックメカニズムの 1 つです。

FcbPagingIoResourceAcquired

TRUE に設定すると、このメンバーは、この操作に対して FCB ページング I/O リソースが取得されたことを指定します。 FCB ページング I/O リソースは、FCB のページング I/O 操作に関連付けられているロックメカニズムの 1 つです。

MustSucceedDescriptorNumber

メンバーは、 RxCreateRxContext ルーチンで最初に 0 に設定されます。 このメンバーは RDBSS では使用されませんが、ネットワーク ミニ リダイレクターで使用できます。

StoredStatus

StoredStatusAlignment

InformationToReturn

IoStatusBlock

I/O 状態ブロックは、ネットワーク ミニ リダイレクターによって状態情報を返すために使用されます。 IoStatusBlock メンバーは、状態情報を返す名前のない共用体のメンバーです。

ForceLonglongAligmentDummyField

MRxContext[MRX_CONTEXT_FIELD_COUNT] メンバーに対して適切な配置を強制するために使用される、名前のない共用体のメンバー。

MRxContext[MRX_CONTEXT_FIELD_COUNT]

WriteOnlyOpenRetryContext

ネットワーク ミニ リダイレクターの状態を格納するために使用できるポインター。 このメンバーは RDBSS では使用されませんが、ネットワーク ミニ リダイレクター ドライバーで使用して、ファイルが書き込み専用ハンドルにキャッシュされていることを示すことができます。

MRxCancelRoutine

ネットワーク ミニ リダイレクター ドライバーによって設定できるキャンセル ルーチンへのポインター。

ResumeRoutine

このメンバーは内部使用のために予約されています。

WorkQueueItem

RX_CONTEXTの処理中にネットワーク ミニ リダイレクター ドライバーによって使用できる作業キュー項目へのポインター。

OverflowListEntry

完了時に解放される操作のリストヘッドへのポインター。 このメンバーは内部使用のために予約されています。

SyncEvent

ネットワーク ミニ リダイレクター ドライバーがRX_CONTEXTの処理中に待機するために使用できるカーネル EVENT へのポインター。

BlockedOperations

完了時に解放されるブロックされた操作のリスト ヘッドへのポインター。 このメンバーは内部使用のために予約されています。

BlockedOpsMutex

ブロックされた操作のシリアル化を制御するミューテックスへのポインター。 このメンバーは内部使用のために予約されています。

RxContextSerializationQLinks

ファイル オブジェクトごとにパイプ操作をシリアル化するために使用されるリスト エントリへのポインター。 このメンバーは内部使用のために予約されています。

Info

MRxQueryDirectory、MRxQueryFileInfoMRxQueryVolumeInfoMRxSetFileInfoMRxSetFileInfoAtCleanup、および MRxSetVolumeInfo ルーチンに使用される名前のない共用体の構造体メンバー。 RDBSS は Info 構造体メンバーの情報をネットワーク ミニ リダイレクターに渡し、ネットワーク ミニ リダイレクターは Info 構造体メンバーの RDBSS に情報を返します。

Info.FsInformationClass

ネットワーク ミニ リダイレクター ドライバーに要求されるFS_INFORMATION_CLASSの種類を渡すために RDBSS によって使用される名前のない共用体のメンバー。 RDBSS は、**MrxQueryVolumeInfo **および MrxSetVolumeInfo を呼び出すときに FsInformationClass メンバーの情報を渡します。

Info.FileInformationClass

ネットワーク ミニ リダイレクター ドライバーに送信されるFILE_INFORMATION_CLASS要求の種類を示すために RDBSS によって使用される名前のない共用体のメンバー。 RDBSS は、MrxQueryDirectory、MrxQueryFileInfo、および MrxSetFileInfo を呼び出すときに FileInformationClass メンバーの情報を渡します。

Info.Buffer

RDBSS からネットワーク ミニ リダイレクター ドライバーにデータを渡し、RDBSS によってネットワーク ミニ リダイレクター ドライバーから応答を受信するために使用されるバッファー。 Buffer メンバーは、MrxQueryDirectoryMrxQueryFileInfoMrxQueryVolumeInfoMrxSetFileInfoMRxSetFileInfoAtCleanup、および MrxSetVolumeInfo ルーチンで使用されます。

Info.Length

RDBSS からネットワーク ミニ リダイレクター ドライバーに Buffer メンバーの長さを渡すために使用される名前のない共用体のメンバー。 Length メンバーは、MrxQueryDirectoryMrxQueryFileInfoMrxQueryVolumeInfoMrxSetFileInfoMRxSetFileInfoAtCleanupおよび MrxSetVolumeInfo ルーチンで使用されます。

Info.LengthRemaining

ネットワーク ミニ リダイレクター ドライバーから RDBSS に Buffer メンバーで返される情報の長さを渡すために使用される名前のない共用体のメンバー。 LengthRemaining メンバーは、MrxQueryDirectory、MrxQueryFileInfo、MrxQueryVolumeInfo、MrxSetFileInfoMRxSetFileInfoAtCleanup、および MrxSetVolumeInfo ルーチンで使用されます。

Info.ReplaceIfExists

名前変更操作中に既存のファイルを置き換える必要があるかどうかを示すブール値。 ReplaceIfExists メンバーは、MrxSetFileInfo ルーチンで使用されます。

Info.AdvanceOnly

このメンバーは、内部使用のために予約されています。

PrefixClaim

マルチ UNC プロバイダー (MUP) から送信されたプレフィックス解決要求に使用される名前のない共用体の構造体メンバー。 プレフィックス要求の結果は、IOCTL_REDIR_QUERY_PATHまたはIOCTL_REDIR_QUERY_PATH_EXの MUP から RDBSS へのIRP_MJ_DEVICE_CONTROL要求です。 RDBSS は PrefixClaim 構造体の情報をネットワーク ミニ リダイレクターに渡し、ネットワーク ミニ リダイレクターは PrefixClaim 構造体の RDBSS に情報を返します。

PrefixClaim.SuppliedPathName

プレフィックス解決を実行する UNC パスを指定する NULL で終わらない Unicode 文字列。

PrefixClaim.NetRootType

要求されたNET_ROOTの型。 このメンバーは現在使用されていません。 RDBSS は 、SuppliedPathName メンバーからNET_ROOTの型を deduces します。

PrefixClaim.pSecurityContext

MUP からの要求から渡されたセキュリティ コンテキストへのポインター。

このメンバーは現在使用されていません。 セキュリティ コンテキストは、このメンバーではなく、RX_CONTEXTの Create.NtCreateParameters.SecurityContext メンバーで渡されます。

Create

IRP_MJ_CREATE要求の処理に使用される名前のない共用体の構造体メンバー。 このメンバーは、 MRxCreate ルーチンを呼び出すファイルを開く要求を処理するために使用されます。 このメンバーは、プレフィックス解決要求にも使用されます。 RDBSS は 、Create 構造体メンバーの情報をネットワーク ミニ リダイレクターに渡し、ネットワーク ミニ リダイレクターは Create 構造体メンバーの RDBSS に情報を返します。

Create.NtCreateParameters

ユーザー モード NtCreatefile ルーチンに渡される create パラメーター。 RDBSS は、IRP の Parameters.Create メンバーに基づいて NtCreateParameters 構造体のメンバーを設定します。

Create.ReturnedCreateInformation

MRxCreate 呼び出しの完了時にネットワーク ミニ リダイレクターによって設定された値。

Create.CanonicalNameBuffer

正規名が使用可能なバッファーより大きい場合に開く物理ファイルの名前を表す Unicode 文字列へのポインター。

Create.NetNamePrefixEntry

NetName テーブル プレフィックス エントリへのポインター。 このメンバーは、内部使用のために予約されています。

Create.pSrvCall

関連付けられているSRV_CALL構造体へのポインター。

Create.pNetRoot

関連付けられたNET_ROOT構造体へのポインター。

Create.pVNetRoot

関連付けられているV_NET_ROOT構造体へのポインター。

Create.EaBuffer

拡張属性バッファーへのポインター。 このメンバーは省略可能です。

Create.EaLength

拡張属性バッファー EaBuffer の長さ。

Create.SdLength

セキュリティ記述子の長さ。 RDBSS は、IRP の Parameters.Create.SecurityContext メンバーの値に基づいてこれを設定します。 SdLength メンバーが 0 以外の場合、セキュリティ記述子は Info.Buffer メンバーでネットワーク ミニ リダイレクターに渡されます。

Create.PipeType

パイプの種類。 このメンバーは、内部使用のために予約されています。

Create.PipeReadMode

パイプの読み取りモード。 このメンバーは、内部使用のために予約されています。

Create.PipeCompletionMode

パイプの入力候補モード。 このメンバーは、内部使用のために予約されています。

Create.Flags

作成フラグ

Create.Type

関連付けられているNET_ROOT構造体の型。

Create.RdrFlags

Create.FcbAcquired

このメンバーは、内部使用のために予約されています。

Create.TryForScavengingOnSharingViolation

このメンバーは、内部使用のために予約されています。

Create.ScavengingAlreadyTried

このメンバーは、内部使用のために予約されています。

Create.ThisIsATreeConnectOpen

この呼び出しがツリー接続オープン要求であるかどうかを示すブール値で、IrpSp-Parameters.Create.Options> メンバーに設定されたFILE_CREATE_TREE_CONNECTION オプションが指定されています。

Create.TreeConnectOpenDeferred

ネットワーク ミニ リダイレクターがツリー接続オープン要求を延期することを選択できることを示すブール値。

Create.TransportName

トランスポート名を表す Unicode 文字列。 このメンバーは、ツリー接続オープン パラメーターから設定されます。

Create.UserName

要求を担当するユーザー名を表す Unicode 文字列。 このメンバーは、ツリー接続オープン パラメーターから設定されます。

Create.Password

認証と承認に使用されるこの UserName のパスワードを含む Unicode 文字列。 このメンバーは、ツリー接続オープン パラメーターから設定されます。

Create.UserDomainName

この UserName のドメイン名を含む Unicode 文字列。

QueryDirectory

IRP_MJ_DIRECTORY_CONTROL要求の処理に使用される名前のない共用体の構造体メンバー。 このメンバーは、 MrxQueryDirectory ルーチンを呼び出すクエリ ディレクトリ要求を処理するために使用されます。 RDBSS は 、QueryDirectory 構造体メンバーの情報をネットワーク ミニ リダイレクターに渡します。

QueryDirectory.FileIndex

IndexSpecified メンバーが TRUE に設定されている場合にディレクトリのスキャンを開始するエントリのインデックス。 このパラメーターは IrpSp-Parameters.QueryDirectory.FileIndex> メンバーに 設定されます。

QueryDirectory.RestartScan

TRUE に設定した場合のブール値は、ディレクトリ内の最初のエントリからスキャンを開始することを示します。 この値が FALSE に設定されている場合、スキャンは以前の呼び出しから再開されます。 このパラメーターは、初めて を呼び出すときに TRUE に設定する必要があります。 IrpSp-Flags> にSL_RESTART_SCAN ビットがオンになっている場合、このパラメーターは TRUE に設定されます。

QueryDirectory.ReturnSingleEntry

TRUE に設定されたブール値は、1 つのエントリのみを返す必要があることを示します。 このパラメーターが TRUE の場合、 MrxQueryDirectory は最初に見つかったエントリのみを返す必要があります。 IrpSp-Flags> にSL_RETURN_SINGLE_ENTRY ビットがオンになっている場合、このパラメーターは TRUE に設定されます。

QueryDirectory.IndexSpecified

TRUE に設定した場合のブール値は、 FileIndex メンバーによってインデックスが指定されたディレクトリ内のエントリでスキャンを開始することを示します。 IrpSp-Flags> にSL_INDEX_SPECIFIED ビットがオンになっている場合、このパラメーターは TRUE に設定されます。

QueryDirectory.InitialQuery

クエリが野生のカード クエリ ("."など) でない場合に TRUE に設定されるブール値。 関連付けられた FOBX の UnicodeQueryTemplate.Buffer メンバーが NULL で、FOBX の Flags メンバーにFOBX_FLAG_MATCH_ALL ビットがオンでない場合、このメンバーは TRUE に設定されます。 ワイルド カード クエリ ("."など) の場合、RDBSS は、関連付けられている FOBX の UnicodeQueryTemplate.Buffer メンバーを、渡されたワイルド カード クエリに設定します。

NotifyChangeDirectory

IRP_MN_NOTIFY_CHANGE_DIRECTORYのマイナー関数を使用してIRP_MJ_DIRECTORY_CONTROL要求を処理するために使用される、名前のない共用体の構造体メンバー。 このメンバーは、 MRxLowIOSubmit[LOWIO_OP_NOTIFY_CHANGE_DIRECTORY] ルーチンを呼び出すディレクトリ変更要求を処理するために使用されます。 RDBSS は、NotifyChangeDirectory 構造体メンバーと pLowIoContext-ParamsFor.NotifyChangeDirectory> 構造体の情報をネットワーク ミニ リダイレクターに渡します。

NotifyChangeDirectory.pVNetRoot

ディレクトリに関連付けられているV_NET_ROOT構造体へのポインター。 このパラメーターは、ノードの種類に応じて IrpSp-FileObject-FsContext>> メンバーまたは IrpSp-FileObject-FsContext2>> メンバーに設定されます。

QueryEa

IRP_MJ_QUERY_EA要求の処理に使用される名前のない共用体の構造体メンバー。 このメンバーは、 MRxQueryEaInfo ルーチンを呼び出す拡張属性クエリ要求を処理するために使用されます。 RDBSS は 、QueryEa 構造体メンバー内の情報をネットワーク ミニ リダイレクターに渡します。

QueryEa.UserEaList

照会する拡張属性を指定する FILE_GET_EA_INFORMATION 構造体を含む、呼び出し元から提供される入力バッファーへのポインター。 このパラメーターは IrpSp-Parameters.QueryEa.EaList> に設定されます。

QueryEa.UserEaListLength

UserEaList メンバーが指すバッファーの長さ (バイト単位)。 このパラメーターは IrpSp-Parameters.QueryEa.EaListLength> に設定されます。

QueryEa.UserEaIndex

拡張属性リストのスキャンを開始するエントリのインデックス。 IndexSpecified メンバーが TRUE に設定されていない場合、または QueryEaList メンバーが空でないリストを指している場合は、このパラメーターを無視する必要があります。 このパラメーターは IrpSp-Parameters.QueryEa.EaIndex> に設定されます。

QueryEa.RestartScan

TRUE に設定した場合のブール値は、クエリが最初の拡張属性エントリから開始されることを示します。 この値が FALSE に設定されている場合、スキャンは以前の呼び出しから再開されます。 このパラメーターは、初めて を呼び出すときに TRUE に設定する必要があります。 IrpSp-Flags> にSL_RESTART_SCAN ビットがオンになっている場合、このパラメーターは TRUE に設定されます。

QueryEa.ReturnSingleEntry

TRUE に設定した場合のブール値は、1 つのエントリのみを返す必要があることを示します。 このパラメーターが TRUE の場合、MrxQueryEaInfo は最初に見つかったエントリのみを返す必要があります。 IrpSp-Flags> にSL_RETURN_SINGLE_ENTRY ビットがオンになっている場合、このパラメーターは TRUE に設定されます。

QueryEa.IndexSpecified

TRUE に設定した場合のブール値は、 UserEaIndex メンバーによってインデックスが指定された拡張属性のエントリでスキャンを開始することを示します。 IrpSp-Flags> にSL_INDEX_SPECIFIED ビットがオンになっている場合、このパラメーターは TRUE に設定されます。

QuerySecurity

IRP_MJ_QUERY_SECURITY要求の処理に使用される名前のない共用体の構造体メンバー。 このメンバーは、 MRxQuerySdInfo ルーチンを呼び出すクエリ セキュリティ要求を処理するために使用されます。 RDBSS は 、QuerySecurity 構造体メンバーの情報をネットワーク ミニ リダイレクターに渡します。

QuerySecurity.SecurityInformation

照会する操作を指定するSECURITY_INFORMATION構造体を含む、呼び出し元から指定された入力バッファーへのポインター。 このパラメーターは IrpSp-Parameters.QuerySecurity.SecurityInformation> に設定されます

QuerySecurity.Length

SecurityInformation メンバーが指すバッファーの長さ (バイト単位)。 このパラメーターは IrpSp-Parameters.QuerySecurity.Length> に設定されます。

SetSecurity

IRP_MJ_SET_SECURITY要求の処理に使用される名前のない共用体の構造体メンバー。 このメンバーは、 MRxSetSdInfo ルーチンを呼び出すクエリ セキュリティ要求を処理するために使用されます。 RDBSS は 、SetSecurity 構造体メンバーの情報をネットワーク ミニ リダイレクターに渡します。

SetSecurity.SecurityInformation

セキュリティ記述子に設定するセキュリティ情報を指定するSECURITY_INFORMATION構造体を含む、呼び出し元から提供される入力バッファーへのポインター。 このパラメーターは IrpSp-Parameters.SetSecurity.SecurityInformation> に設定されます

SetSecurity.SecurityDescriptor

オブジェクトに割り当てられるセキュリティ情報の値を含むSECURITY_DESCRIPTOR構造体へのポインター。 このパラメーターは IrpSp-Parameters.SetSecurity.SecurityDescriptor> に設定されます。

QueryQuota

IRP_MJ_QUERY_QUOTA要求の処理に使用される名前のない共用体の構造体メンバー。 このメンバーは、 MRxQueryQuotaInfo ルーチンを呼び出すクエリ セキュリティ要求を処理するために使用されます。 RDBSS は 、QueryQuota 構造体メンバー内の情報をネットワーク ミニ リダイレクターに渡します。

QueryQuota.Length

StartSid メンバーが指すバッファーの長さ (バイト単位)。 このパラメーターは IrpSp-Parameters.QueryQuota.Length> に設定されます。

QueryQuota.StartSid

返される情報が最初のエントリ以外のエントリで始まることを示す SID への省略可能なポインター。 SidList メンバーが指定されている場合、このパラメーターは無視されます。 このパラメーターは IrpSp-Parameters.QueryQuota.StartSid> に設定されます。

QueryQuota.SidList

クォータ情報が返される SID の一覧へのポインター (省略可能)。 リスト内の各エントリは、FILE_GET_QUOTA_INFORMATION構造です。 このパラメーターは IrpSp-Parameters.QueryQuota.SidList> に設定されます。

QueryQuota.SidListLength

SidList メンバーの SID の一覧の長さ (バイト単位) (指定されている場合)。 このパラメーターは IrpSp-Parameters.QueryQuota.SidListLength> に設定されます。

QueryQuota.RestartScan

TRUE に設定した場合のブール値は、クエリが最初のエントリから開始されることを示します。 この値が FALSE に設定されている場合、スキャンは以前の呼び出しから再開されます。 このパラメーターは、初めて を呼び出すときに TRUE に設定する必要があります。 IrpSp-Flags> にSL_RESTART_SCAN ビットがオンになっている場合、このパラメーターは TRUE に設定されます。

QueryQuota.ReturnSingleEntry

TRUE に設定した場合のブール値は、1 つのエントリのみを返す必要があることを示します。 このパラメーターが TRUE の場合、MrxQueryQuotaInfo は最初に見つかったエントリのみを返す必要があります。 IrpSp-Flags> にSL_RETURN_SINGLE_ENTRY ビットがオンになっている場合、このパラメーターは TRUE に設定されます。

QueryQuota.IndexSpecified

TRUE に設定した場合のブール値は、 StartSid メンバーによってインデックスが指定されたリスト内のエントリでスキャンを開始することを示します。 IrpSp-Flags> にSL_INDEX_SPECIFIED ビットがオンになっている場合、このパラメーターは TRUE に設定されます。

SetQuota

IRP_MJ_SET_QUOTA要求の処理に使用される名前のない共用体の構造体メンバー。 この構造体は現在、RDBSS では使用されていません。

SetQuota.Length

SetQuota 構造体の未使用のメンバー。

DosVolumeFunction

名前のない共用体の構造体メンバー。 この構造体は現在、RDBSS では使用されていません。

DosVolumeFunction.VNetRoot

DosVolumeFunction 構造体の未使用のメンバー。

DosVolumeFunction.SrvCall

DosVolumeFunction 構造体の未使用のメンバー。

DosVolumeFunction.NetRoot

DosVolumeFunction 構造体の未使用のメンバー。

FlagsForLowIo

LowIoContext

AlsoCanonicalNameBuffer

LoudCompletionString

RX_CONTEXT構造体の未使用のメンバー。

AcquireReleaseFcbTrackerX

TrackerHistoryPointer

TrackerHistory[RDBSS_TRACKER_HISTORY_SIZE]

ShadowCritOwner

StoredStatus

低 I/O 操作のためにネットワーク ミニ リダイレクター ドライバーによって状態情報を返すために使用される名前のない共用体のメンバー。 RDBSS では、ファイル クエリ操作が RDBSS によって認識されない場合に MRxQueryFileInfo ルーチンによって返される状態に基づいて、この値も設定されます。

StoredStatusAlignment

StoredStatus メンバーに適切なアラインメントを強制するために使用される、名前のない共用体のメンバー。

InformationToReturn

一部の低 I/O (読み取り、書き込み、FSCTL など) および MrxQueryXXX 操作のネットワーク ミニ リダイレクター ドライバーによって状態情報を返すために使用される名前のない共用体のメンバー。

RX_CONTEXT構造体に使用される一意のノードの種類。 RDBSS で使用されるすべての主要な構造体の種類 (RX_CONTEXT、SRV_CALL、NET_ROOT、V_NET_ROOT、SRV_OPEN、FCB、FOBX など) には、デバッグに使用できる nodetype.h インクルード ファイルで定義された一意の 2 バイトのノード型コードがあります。 RDBSS は、 RxInitializeContext ルーチンでRX_CONTEXTが初期化されるときに、このメンバーをRDBSS_NTC_RX_CONTEXTに設定します。 ネットワーク ミニ リダイレクター ドライバーが他のメソッドを使用してRX_CONTEXT構造体を初期化する場合は、このメンバーを設定する必要があります。

RDBSS では、RDBSS によって使用されるすべての構造体の標準ヘッダーの一部として、このメンバーが定義されます。

FlagsForLowIo

RDBSS によって設定され、ネットワーク ミニ リダイレクターに送信される低 I/O 操作に渡される一連のオプション。 FlagsForLowIo は、ネットワーク ミニ リダイレクターへの低 I/O 要求に使用される名前のない構造体のメンバーです。

LowIoContext

ネットワーク ミニ リダイレクターに渡されるLOWIO_CONTEXT構造体へのポインター。 LowIoContext は、ネットワーク ミニ リダイレクターに送信される低 I/O 要求に使用される名前のない構造体のメンバーです。

注釈

RX_CONTEXT構造体は、RDBSS とネットワーク ミニ リダイレクターが I/O 要求パケット (IRP) を管理するために使用する基本的なデータ構造の 1 つです。 RX_CONTEXT データ構造は、RDBSS、ネットワーク ミニ リダイレクター、およびファイル システムで使用する IRP をカプセル化します。 RX_CONTEXT構造体には、1 つの IRP へのポインターと、IRP の処理に必要なすべてのコンテキストが含まれます。

RX_CONTEXT構造体は、Windows Driver Kit (WDK) または IFS Kit ヘッダー ファイル、およびネットワーク ミニ リダイレクター ドライバーの開発に使用されるその他のリソースで、IRP コンテキストまたは RxContext と呼ばれることがあります。

RX_CONTEXTは、さまざまなネットワーク ミニ リダイレクターによって提供される追加情報が接続されるデータ構造です。 RX_CONTEXTには、各RX_CONTEXT構造体のサイズを、各ネットワーク ミニ リダイレクターに対して事前に指定された量だけ割り当てるためのフィールドが含まれます。これは、ミニ リダイレクターで使用するために予約されています。 この方法は、各RX_CONTEXTの一部としてすべてのネットワーク ミニ リダイレクターに対して同じ、事前に指定された領域を割り当てることで構成されます。 これは、さまざまなネットワーク ミニ リダイレクターによって必要な構造を適用できる、書式設定されていない領域です。 ネットワーク ミニ リダイレクター ドライバーの開発者は、RX_CONTEXT データ構造で定義されているこの事前に指定された領域に収まるように、関連付けられているプライベート コンテキストを定義する必要があります。 この規則に違反するネットワーク ミニ リダイレクター ドライバーでは、パフォーマンスが大幅に低下します。

ネットワーク ミニ リダイレクターによってエクスポートされた多くの RDBSS ルーチンとルーチンは、開始スレッドまたはルーチンで使用される他のスレッドのRX_CONTEXT構造体を参照します。 したがって、割り当てられたRX_CONTEXT構造体は、非同期操作の使用を管理するために参照カウントされます。 参照カウントが 0 になると、割り当てられたRX_CONTEXT構造体を最終処理し、最後の逆参照操作で解放できます。

RDBSS には、RX_CONTEXTと関連付けられている IRP を操作するために使用されるルーチンが多数用意されています。 これらのルーチンは、RX_CONTEXTの割り当て、初期化、および削除に使用されます。 これらのルーチンは、RX_CONTEXTに関連付けられている IRP を完了し、RX_CONTEXTのキャンセル ルーチンを設定するためにも使用されます。

要件

要件
Header rxcontx.h (Rx.h、Rxcontx.h を含む)

こちらもご覧ください

FILE_GET_EA_INFORMATION

IOCTL_REDIR_QUERY_PATH

IOCTL_REDIR_QUERY_PATH_EX

IRP_MJ_CREATE

IRP_MJ_DEVICE_CONTROL

IRP_MJ_DIRECTORY_CONTROL

IRP_MJ_QUERY_EA

IRP_MJ_QUERY_QUOTA

IRP_MJ_QUERY_SECURITY

IRP_MJ_SET_QUOTA

IRP_MJ_SET_SECURITY

IoCompletion

IoMarkIrpPending

MRxCreate

MRxLowIOSubmit[LOWIO_OP_NOTIFY_CHANGE_DIRECTORY]

MRxQueryDirectory

MRxQueryEaInfo

MRxQueryFileInfo

MRxQueryQuotaInfo

MRxQuerySdInfo

MRxQueryVolumeInfo

MRxSetFileInfo

MRxSetFileInfoAtCleanup

MRxSetSdInfo

MRxSetVolumeInfo

RxCreateRxContext

RxInitializeContext

RxStartMinirdr