次の方法で共有


RX_CONTEXT構造体 (rxcontx.h)

RX_CONTEXT 構造体は、RDBSS、ネットワーク ミニ リダイレクター、およびファイル システムで使用する IRP をカプセル化します。 ネットワーク ミニ リダイレクターによって処理されている間の 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 は、RxInitializeContextで RX_CONTEXT が初期化されるときに、このメンバー RDBSS_NTC_RX_CONTEXT に設定します。 ネットワーク ミニ リダイレクター ドライバーが他のメソッドを使用して RX_CONTEXT 構造体を初期化する場合は、このメンバーを設定する必要があります。

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

RDBSS で使用されるすべての主要な構造体の種類には、デバッグに使用できる一意の 2 バイト ノード型コード nodetype.h で定義されています。 これらの主な構造体の種類は次のとおりです。

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

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

NonPagedFcb

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

RxDeviceObject

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

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

低 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 によって使用されるすべての構造体の標準ヘッダーの一部として、このメンバーが定義されます。

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の処理中に待機するために使用できるカーネル イベントへのポインター。

BlockedOperations

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

BlockedOpsMutex

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

RxContextSerializationQLinks

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

Info

次のルーチンに使用される名前のない共用体の構造体メンバー。

  • MRxQueryDirectory の
  • MRxQueryFileInfo の
  • MRxQueryVolumeInfo を する
  • MRxSetFileInfo の
  • MRxSetFileInfoAtCleanup を する
  • MRxSetVolumeInfo の

RDBSS は、Info 構造体メンバーの情報をネットワーク ミニ リダイレクターに渡し、ネットワーク ミニ リダイレクターは、Info 構造体メンバーの RDBSS に情報を返します。

Info.FsInformationClass

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

Info.FileInformationClass

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

Info.Buffer

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

Info.Length

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

Info.LengthRemaining

ネットワーク ミニ リダイレクター ドライバーから RDBSS に バッファー メンバーで返される情報の長さを渡すために使用される名前のない共用体のメンバー。 LengthRemaining メンバーは、mrxQueryDirectory、mrxQueryFileInfo、MrxQueryVolumeInfo で使用されます、mrxSetFileInfo、MRxSetFileInfoAtCleanup、および 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の型を取得します。

PrefixClaim.pSecurityContext

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

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

Create

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

Create.NtCreateParameters

NtCreatefile ルーチン ユーザー モードに渡される作成パラメーター。 RDBSS は、Parameters.Create IRP のメンバーに基づいて、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-フラグ SL_RETURN_SINGLE_ENTRY ビットがオンになっている場合、このパラメーターは TRUE に設定されます。

QueryDirectory.IndexSpecified

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

QueryEa.IndexSpecified

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

QueryQuota.ReturnSingleEntry

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

QueryQuota.IndexSpecified

TRUE に設定した場合のブール値は、StartSid メンバーによってインデックスが指定されたリスト内のエントリでスキャンを開始することを示します。 IrpSp-フラグ 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

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

LowIoContext

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

AlsoCanonicalNameBuffer

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

LoudCompletionString

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

AcquireReleaseFcbTrackerX

システム用に予約されています。

TrackerHistoryPointer

システム用に予約されています。

TrackerHistory[RDBSS_TRACKER_HISTORY_SIZE]

システム用に予約されています。

ShadowCritOwner

システム用に予約されています。

備考

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

RX_CONTEXT 構造体は、WDK ヘッダー ファイルおよびネットワーク ミニ リダイレクター ドライバーの開発に使用されるその他のリソースの 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のキャンセル ルーチンを設定するためにも使用されます。

必要条件

要件 価値
ヘッダー 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 の