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で
RDBSS では、RDBSS によって使用されるすべての構造体の標準ヘッダーの一部として、このメンバーが定義されます。
RDBSS で使用されるすべての主要な構造体の種類には、デバッグに使用できる一意の 2 バイト ノード型コード nodetype.h で定義されています。 これらの主な構造体の種類は次のとおりです。
NodeByteSize
この構造体のサイズ (バイト単位)。 RDBSS は、rxInitializeContext ルーチンでRX_CONTEXTが初期化されるときに、このメンバーを sizeof(
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 ルーチン
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
この
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
Info.FileInformationClass
ネットワーク ミニ リダイレクター ドライバーに送信された要求の種類を示すために RDBSS によって使用される名前のない共用体のメンバー FILE_INFORMATION_CLASS。 RDBSS は、mrxQueryDirectory、
Info.Buffer
RDBSS からネットワーク ミニ リダイレクター ドライバーにデータを渡し、RDBSS によってネットワーク ミニ リダイレクター ドライバーから応答を受信するために使用されるバッファー。
Info.Length
RDBSS からネットワーク ミニ リダイレクター ドライバーに Buffer メンバーの長さを渡すために使用される名前のない共用体のメンバー。
Info.LengthRemaining
ネットワーク ミニ リダイレクター ドライバーから RDBSS に バッファー メンバーで返される情報の長さを渡すために使用される名前のない共用体のメンバー。
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 ルーチン
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-
QueryDirectory.ReturnSingleEntry
TRUE に設定されたブール値は、1 つのエントリのみを返す必要があることを示します。 このパラメーターが TRUE の場合、MrxQueryDirectory
QueryDirectory.IndexSpecified
TRUE に設定した場合のブール値は、FileIndex メンバーによってインデックスが指定されたディレクトリ内のエントリでスキャンを開始することを示します。 IrpSp-
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-
QueryEa.UserEaListLength
UserEaList メンバーが指
QueryEa.UserEaIndex
拡張属性リストのスキャンを開始するエントリのインデックス。 このパラメーターは、IndexSpecified メンバーが TRUE に設定されていない場合、または QueryEaList メンバーが空でないリストを指している場合は無視する必要があります。 このパラメーターは、IrpSp-
QueryEa.RestartScan
TRUE に設定した場合のブール値は、クエリが最初の拡張属性エントリから開始することを示します。 この値が FALSE に設定されている場合、スキャンは前の呼び出しから再開されます。 このパラメーターは、初めて呼び出すときに TRUE に設定する必要があります。 IrpSp-
QueryEa.ReturnSingleEntry
TRUE に設定した場合のブール値は、1 つのエントリのみを返す必要があることを示します。 このパラメーターが TRUE の場合、MrxQueryEaInfo は見つかった最初のエントリのみを返す必要があります。 IrpSp-
QueryEa.IndexSpecified
TRUE に設定した場合のブール値は、UserEaIndex メンバーによってインデックスが指定された拡張属性のエントリでスキャンを開始することを示します。 IrpSp-
QuerySecurity
IRP_MJ_QUERY_SECURITY 要求の処理に使用される名前のない共用体の構造体メンバー。 このメンバーは、MRxQuerySdInfo ルーチンを呼び出すクエリ セキュリティ要求を処理するために使用されます。 RDBSS は、QuerySecurity 構造体メンバー内の情報をネットワーク ミニ リダイレクターに渡します。
QuerySecurity.SecurityInformation
照会する操作を指定するSECURITY_INFORMATION構造体を含む、呼び出し元が指定した入力バッファーへのポインター。 このパラメーターは、IrpSp-
QuerySecurity.Length
SecurityInformation メンバーが指すバッファーの長さ (バイト単位)。 このパラメーターは、IrpSp-
SetSecurity
IRP_MJ_SET_SECURITY 要求の処理に使用される名前のない共用体の構造体メンバー。 このメンバーは、MRxSetSdInfo ルーチンを呼び出すクエリ セキュリティ要求を処理するために使用されます。 RDBSS は、setSecurity 構造体メンバー
SetSecurity.SecurityInformation
セキュリティ記述子に設定するセキュリティ情報を指定するSECURITY_INFORMATION構造体を含む、呼び出し元が指定した入力バッファーへのポインター。 このパラメーターは、IrpSp-
SetSecurity.SecurityDescriptor
オブジェクトに割り当てるセキュリティ情報の値を含むSECURITY_DESCRIPTOR構造体へのポインター。 このパラメーターは、IrpSp-
QueryQuota
IRP_MJ_QUERY_QUOTA 要求の処理に使用される名前のない共用体の構造体メンバー。 このメンバーは、MRxQueryQuotaInfo ルーチンを呼び出すクエリ セキュリティ要求を処理するために使用されます。 RDBSS は、QueryQuota 構造体メンバー内の情報をネットワーク ミニ リダイレクターに渡します。
QueryQuota.Length
startSid メンバーが指すバッファー
QueryQuota.StartSid
返される情報が最初のエントリ以外のエントリで始まることを示す SID への省略可能なポインター。
SidList メンバーが指定されている場合、このパラメーターは無視されます。 このパラメーターは、IrpSp-
QueryQuota.SidList
クォータ情報が返される SID のリストへの省略可能なポインター。 リスト内の各エントリは、FILE_GET_QUOTA_INFORMATION構造です。 このパラメーターは、IrpSp-
QueryQuota.SidListLength
SidList メンバー内の SID のリストの長さ (バイト単位)。 このパラメーターは、IrpSp-
QueryQuota.RestartScan
TRUE に設定した場合のブール値は、クエリが最初のエントリから開始することを示します。 この値が FALSE に設定されている場合、スキャンは前の呼び出しから再開されます。 このパラメーターは、初めて呼び出すときに TRUE に設定する必要があります。 IrpSp-
QueryQuota.ReturnSingleEntry
TRUE に設定した場合のブール値は、1 つのエントリのみを返す必要があることを示します。 このパラメーターが TRUE の場合、MrxQueryQuotaInfo は見つかった最初のエントリのみを返す必要があります。 IrpSp-
QueryQuota.IndexSpecified
TRUE に設定した場合のブール値は、StartSid メンバーによってインデックスが指定されたリスト内のエントリでスキャンを開始することを示します。 IrpSp-
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_FLAGS。 FlagsForLowIo は、ネットワーク ミニ リダイレクターへの低 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 を含む) |
関連項目
MRxLowIOSubmit[LOWIO_OP_NOTIFY_CHANGE_DIRECTORY]
MRxQueryDirectory の
MRxQueryEaInfo の
MRxQueryFileInfo の
MRxQueryQuotaInfo の
MRxQuerySdInfo の
MRxQueryVolumeInfo を
MRxSetFileInfo の
MRxSetFileInfoAtCleanup を
MRxSetSdInfo の
MRxSetVolumeInfo の
RxCreateRxContext の
RxInitializeContext の
RxStartMinirdr の