RX_CONTEXT-Struktur (rxcontx.h)
Die RX_CONTEXT-Struktur kapselt ein IRP für die Verwendung durch RDBSS, Netzwerkminiumleitungen und das Dateisystem. Die RX_CONTEXT-Struktur beschreibt ein IRP, während es von einem Netzwerk-Mini-Redirector verarbeitet wird, und enthält Zustandsinformationen, mit denen globale Ressourcen freigegeben werden können, sobald das IRP abgeschlossen ist.
Syntax
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;
Member
NodeTypeCode
Der eindeutige Knotentyp, der für eine RX_CONTEXT-Struktur verwendet wird. Alle wichtigen Strukturtypen (z. B. RX_CONTEXT, SRV_CALL, NET_ROOT, V_NET_ROOT, SRV_OPEN, FCB und FOBX), die von RDBSS verwendet werden, verfügen über einen eindeutigen Zwei-Byte-Knotentypcode, der in der include-Datei nodetype.h definiert ist und zum Debuggen verwendet werden kann. RDBSS legt diesen Member auf RDBSS_NTC_RX_CONTEXT fest, wenn ein RX_CONTEXT in der RxInitializeContext-Routine initialisiert wird. Wenn ein Netzwerk-Miniumleitungstreiber eine RX_CONTEXT-Struktur mit einer anderen Methode initialisiert, muss dieser Member festgelegt werden.
RDBSS definiert diesen Member als Teil eines Standardheaders für alle von RDBSS verwendeten Strukturen.
NodeByteSize
Die Größe (in Bytes) dieser Struktur. RDBSS legt diesen Member auf sizeof( RX_CONTEXT) fest, wenn ein RX_CONTEXT in der RxInitializeContext-Routine initialisiert wird. Wenn ein Netzwerk-Miniumleitungstreiber eine RX_CONTEXT-Struktur mit einer anderen Methode initialisiert, muss dieser Member festgelegt werden.
RDBSS definiert diesen Member als Teil eines Standardheaders für alle von RDBSS verwendeten Strukturen.
ReferenceCount
Die Verweisanzahl für diese Struktur, nachdem sie zugeordnet wurde. RDBSS legt diesen Member auf 1 fest, wenn ein RX_CONTEXT in der RxInitializeContext-Routine zugeordnet und initialisiert wird. Wenn ein Netzwerk-Miniumleitungstreiber eine RX_CONTEXT-Struktur mit einer anderen Methode initialisiert, muss dieser Member festgelegt werden.
RDBSS definiert diesen Member als Teil eines Standardheaders für alle von RDBSS verwendeten Strukturen.
ContextListEntry
Der Listeneintrag zum Verbinden dieses RX_CONTEXT mit der Liste der aktiven RX_CONTEXTS.
MajorFunction
Die Hauptfunktion für das von diesem RX_CONTEXT gekapselte IRP.
MinorFunction
Die Nebenfunktion für das von diesem RX_CONTEXT gekapselte IRP.
PendingReturned
Wenn dieser Wert auf TRUE festgelegt ist, gibt dies an, dass RDBSS oder ein Treiber das IRP als ausstehend markiert hat. Jede IoCompletion-Routine sollte den Wert dieses Flags überprüfen. Wenn das Flag TRUE ist und die IoCompletion-Routine nicht STATUS_MORE_PROCESSING_REQUIRED zurückgibt, sollte die Routine IoMarkIrpPending aufrufen, um die ausstehende status an Treiber darüber im Gerätestapel zu verteilen. Dieses Element ähnelt dem gleichen Feld im IRP.
RDBSS legt diesen Member immer auf TRUE fest, bevor der Netzwerk-Miniumleitungstreiber aufgerufen wird.
PostRequest
Wenn true festgelegt ist, gibt dies an, ob die zugeordnete Anforderung an einen RDBSS-Workerthread gesendet werden soll. Ein Netzwerk-Mini-Redirector kann diesen Member auf TRUE festlegen, um anzugeben, dass er diese Anforderung an den Dateisystemprozess (File System Process, FSP) senden möchte.
RealDevice
Ein Zeiger auf das Geräteobjekt für den Miniumleitungstreiber des Zielnetzwerks. RDBSS legt diesen Member auf das Geräteobjekt für den Netzwerk-Miniumleitungstreiber fest, wenn in der RxInitializeContext-Routine ein RX_CONTEXT zugeordnet ist. Dieses Element wird aus dem FileObject-DeviceObject-Member aus dem IRP-Stapel> kopiert. Das Geräteobjekt für den Netzwerk-Mini-Redirector wird auch im RxDeviceObject-Strukturelement gespeichert.
Das RealDevice-Element wird derzeit nicht von RDBSS verwendet, kann aber von Netzwerk-Miniumleitungen verwendet werden.
CurrentIrp
Ein Zeiger auf den ursprünglichen IRP. Dieser Member sollte nicht von einem Netzwerk-Miniumleitungstreiber verwendet werden.
CurrentIrpSp
Ein Zeiger auf den IRP-Stapelspeicherort.
pFcb
Ein Zeiger auf den zugeordneten Dateikontrollblock (FCB) für dieses IRP.
pFobx
Ein Zeiger auf die zugeordnete Dateiobjekterweiterung (FOBX) für dieses IRP.
pRelevantSrvOpen
Ein Zeiger auf den zugeordneten Server open(SRV_OPEN) für diese IRP.
NonPagedFcb
Ein Zeiger auf den zugeordneten nicht ausgelagerten Dateisteuerungsblock (FCB) für dieses IRP.
RxDeviceObject
Ein Zeiger auf den RDBSS_DEVICE_OBJECT für den Miniumleitungstreiber des Zielnetzwerks, der für Workerwarteschlangenalgorithmen erforderlich ist. RDBSS legt diesen Member auf den RDBSS_DEVICE_OBJECT für den Netzwerkminiumleitungsor fest, wenn ein RX_CONTEXT in der RxInitializeContext-Routine initialisiert wird. Die RxDeviceObject-Struktur enthält ein DeviceObject-Element , das das Geräteobjekt für den Netzwerk-Miniumleitungstreiber enthält, der mit dem RealDevice-Member des RX_CONTEXT identisch ist.
OriginalThread
Ein Zeiger auf den ursprünglichen Thread, in dem die Anforderung initiiert wurde.
LastExecutionThread
Ein Zeiger auf den letzten Thread, in dem eine der RX_CONTEXT zugeordnete Verarbeitung durchgeführt wurde, wenn der Thread im Dateisystemprozess bereitgestellt wurde.
LockManagerContext
Ein Zeiger auf den Sperr-Manager-Kontext. Dieser Member ist für die interne Verwendung reserviert.
RdbssDbgExtension
Ein Zeiger auf den Kontext, der RDBSS für Debuginformationen zugewiesen wird. Dieser Member ist für die interne Verwendung reserviert.
ScavengerEntry
Ein Zeiger auf die Liste der Elemente, die gelöscht werden sollen. Dieser Member ist für die interne Verwendung reserviert.
SerialNumber
Die Seriennummer für diese RX_CONTEXT-Struktur. Jeder von RDBSS initialisierten Struktur wird eine Seriennummer zugewiesen, wenn die Struktur zum ersten Mal initialisiert wird. Diese Seriennummer ist eine Zahl, die um eins erhöht wird, bevor der Wert festgelegt wird. RDBSS legt diesen Member fest, wenn ein RX_CONTEXT in der RxInitializeContext-Routine initialisiert wird. RDBSS
FobxSerialNumber
Die Seriennummer für die zugeordnete FOBX-Struktur. Jeder von RDBSS initialisierten Struktur wird eine Seriennummer zugewiesen, wenn die Struktur zum ersten Mal initialisiert wird. Dieser Member kann von Netzwerkminiumleitungen verwendet werden, um zu ermitteln, ob mehrere Aufrufe Teil desselben größeren Vorgangs sind und daher besser zwischengespeichert werden können.
Flags
Eine Bitmaske von Flags für diese RX_CONTEXT-Struktur.
FcbResourceAcquired
Wenn dieser Wert auf TRUE festgelegt ist, gibt dieses Element an, dass die FCB-Ressource für diesen Vorgang abgerufen wurde. Die FCB-Ressource ist einer der Sperrmechanismen, die einem Vorgang für einen FCB zugeordnet sind.
FcbPagingIoResourceAcquired
Wenn dieser Wert auf TRUE festgelegt ist, gibt dieses Element an, dass die FCB-Paging-E/A-Ressource für diesen Vorgang abgerufen wurde. Die FCB-Paging-E/A-Ressource ist einer der Sperrmechanismen, die einem Auslagerungs-E/A-Vorgang für einen FCB zugeordnet sind.
MustSucceedDescriptorNumber
Ein Member, der in der RxCreateRxContext-Routine anfänglich auf 0 festgelegt wird. Dieser Member wird nicht anderweitig von RDBSS verwendet, kann aber von Netzwerk-Mini-Umleitungen verwendet werden.
StoredStatus
StoredStatusAlignment
InformationToReturn
IoStatusBlock
Der E/A-status-Block, der von einem Netzwerkminiumleitungsor verwendet wird, um status Informationen zurückzugeben. Das IoStatusBlock-Element ist ein Mitglied einer unbenannten Union, die zum Zurückgeben status Informationen verwendet wird.
ForceLonglongAligmentDummyField
Ein Member einer unbenannten Union, die verwendet wird, um die richtige Ausrichtung auf dem MRxContext[MRX_CONTEXT_FIELD_COUNT] -Member zu erzwingen.
MRxContext[MRX_CONTEXT_FIELD_COUNT]
WriteOnlyOpenRetryContext
Ein Zeiger, der verwendet werden kann, um einen Zustand für den Netzwerkminiumleitungsor zu speichern. Dieser Member wird nicht von RDBSS verwendet, kann aber von einem Netzwerk-Miniumleitungstreiber verwendet werden, um anzugeben, dass eine Datei in einem schreibgeschützten Handle zwischengespeichert wird.
MRxCancelRoutine
Ein Zeiger auf die Abbruchroutine, die von einem Netzwerk-Miniumleitungstreiber festgelegt werden kann.
ResumeRoutine
Dieser Member ist für die interne Verwendung reserviert.
WorkQueueItem
Ein Zeiger auf ein Arbeitswarteschlangenelement, das von einem Netzwerk-Miniumleitungstreiber während der Verarbeitung der RX_CONTEXT verwendet werden kann.
OverflowListEntry
Ein Zeiger auf den Listenkopf der Vorgänge, die nach Abschluss freigegeben werden sollen. Dieser Member ist für die interne Verwendung reserviert.
SyncEvent
Ein Zeiger auf ein KernelEREIGNIS, das von einem Netzwerk-Miniumleitungstreiber verwendet werden kann, um während der Verarbeitung des RX_CONTEXT zu warten.
BlockedOperations
Ein Zeiger auf den Listenkopf der blockierten Vorgänge, die nach Abschluss freigegeben werden sollen. Dieser Member ist für die interne Verwendung reserviert.
BlockedOpsMutex
Ein Zeiger auf einen Mutex, der die Serialisierung der blockierten Vorgänge steuert. Dieser Member ist für die interne Verwendung reserviert.
RxContextSerializationQLinks
Ein Zeiger auf den Listeneintrag, der zum Serialisieren von Pipevorgängen pro Dateiobjekt verwendet wird. Dieser Member ist für die interne Verwendung reserviert.
Info
Ein Strukturmember einer unbenannten Union, die für die Routinen MRxQueryDirectory, MRxQueryFileInfo, MRxQueryVolumeInfo, MRxSetFileInfo, MRxSetFileInfoAtCleanup und MRxSetVolumeInfo verwendet wird. RDBSS übergibt Informationen im Info-Strukturelement an den Netzwerk-Miniumleitungsor, und der Netzwerkminiumleitungsor gibt Informationen an RDBSS im Info-Strukturelement zurück.
Info.FsInformationClass
Ein Mitglied einer unbenannten Union, die von RDBSS verwendet wird, um den Typ von FS_INFORMATION_CLASS zu übergeben, der an den Netzwerk-Miniumleitungstreiber angefordert wird. RDBSS übergibt Informationen im FsInformationClass-Member , wenn **MrxQueryVolumeInfo ** und MrxSetVolumeInfo aufgerufen werden.
Info.FileInformationClass
Ein Mitglied einer unbenannten Union, die von RDBSS verwendet wird, um den Typ FILE_INFORMATION_CLASS Anforderung anzugeben, die an den Netzwerk-Miniumleitungstreiber gesendet wird. RDBSS übergibt Informationen im FileInformationClass-Member , wenn MrxQueryDirectory, MrxQueryFileInfo und MrxSetFileInfo aufgerufen werden.
Info.Buffer
Ein Puffer, der verwendet wird, um Daten von RDBSS an den Netzwerk-Miniumleitungstreiber zu übergeben und Antworten vom Netzwerk-Miniumleitungstreiber von RDBSS zu empfangen. Das Buffer-Element wird in den Routinen MrxQueryDirectory, MrxQueryFileInfo, MrxQueryVolumeInfo, MrxSetFileInfo, MRxSetFileInfoAtCleanup und MrxSetVolumeInfo verwendet.
Info.Length
Ein Mitglied einer unbenannten Union, die verwendet wird, um die Länge des Buffer-Members von RDBSS an den Netzwerk-Miniumleitungstreiber zu übergeben. Das Length-Element wird in den Routinen MrxQueryDirectory, MrxQueryFileInfo, MrxQueryVolumeInfo, MrxSetFileInfo, MRxSetFileInfoAtCleanup und MrxSetVolumeInfo verwendet.
Info.LengthRemaining
Ein Mitglied einer unbenannten Union, die verwendet wird, um die Länge der im Pufferelement zurückgegebenen Informationen vom Netzwerk-Miniumleitungstreiber an RDBSS zu übergeben. Das LengthRemaining-Element wird in den Routinen MrxQueryDirectory, MrxQueryFileInfo, MrxQueryVolumeInfo, MrxSetFileInfo, MRxSetFileInfoAtCleanup und MrxSetVolumeInfo verwendet.
Info.ReplaceIfExists
Ein boolescher Wert, der angibt, ob eine vorhandene Datei während eines Umbenennungsvorgangs ersetzt werden soll. Das ReplaceIfExists-Element wird in der MrxSetFileInfo-Routine verwendet.
Info.AdvanceOnly
Dieses Element ist für die interne Verwendung reserviert.
PrefixClaim
Ein Strukturelement einer unbenannten Union, die für Präfixauflösungsanforderungen verwendet wird, die vom MUP (Multiple UNC Provider) gesendet werden. Ein Präfixanspruch ergibt sich aus einer IRP_MJ_DEVICE_CONTROL Anforderung von MUP an RDBSS für IOCTL_REDIR_QUERY_PATH oder IOCTL_REDIR_QUERY_PATH_EX. RDBSS übergibt Informationen in der PrefixClaim-Struktur an den Netzwerkminiumleitungsor, und der Netzwerkminiumleitung gibt Informationen an RDBSS in der PrefixClaim-Struktur zurück.
PrefixClaim.SuppliedPathName
Eine nicht NULL beendete Unicode-Zeichenfolge, die den UNC-Pfad angibt, für den die Präfixauflösung ausgeführt werden soll.
PrefixClaim.NetRootType
Der Typ der angeforderten NET_ROOT. Dieser Member wird derzeit nicht verwendet. RDBSS leitet den Typ des NET_ROOT aus dem SuppliedPathName-Member ab.
PrefixClaim.pSecurityContext
Ein Zeiger auf den Sicherheitskontext, der von der Anforderung von MUP übergeben wurde.
Dieser Member wird derzeit nicht verwendet. Der Sicherheitskontext wird im Create.NtCreateParameters.SecurityContext-Member des RX_CONTEXT übergeben, nicht in diesem Member.
Create
Ein Strukturmember einer unbenannten Union, die für die Verarbeitung IRP_MJ_CREATE Anforderungen verwendet wird. Dieser Member wird für die Verarbeitung von dateioffenen Anforderungen verwendet, die zu Aufrufen der MRxCreate-Routine führen. Dieses Element wird auch für Präfixauflösungsanforderungen verwendet. RDBSS übergibt Informationen im Strukturelement Erstellen an den Netzwerkminiumleitungsor, und der Netzwerkminiumleitungsor gibt Informationen an RDBSS im Strukturelement Erstellen zurück.
Create.NtCreateParameters
Die Create-Parameter, die an die NtCreatefile-Routine im Benutzermodus übergeben werden. RDBSS legt die Member der NtCreateParameters-Struktur basierend auf den Parameters.Create-Membern des IRP fest.
Create.ReturnedCreateInformation
Ein Wert, der vom Netzwerkminiumleitungsor bei Abschluss des MRxCreate-Aufrufs festgelegt wird.
Create.CanonicalNameBuffer
Ein Zeiger auf die Unicode-Zeichenfolge, die den Namen der physischen Datei darstellt, die geöffnet werden soll, wenn der kanonische Name größer als der verfügbare Puffer ist.
Create.NetNamePrefixEntry
Ein Zeiger auf den NetName-Tabellenpräfixeintrag. Dieses Element ist für die interne Verwendung reserviert.
Create.pSrvCall
Ein Zeiger auf die zugeordnete SRV_CALL-Struktur.
Create.pNetRoot
Ein Zeiger auf die zugeordnete NET_ROOT-Struktur.
Create.pVNetRoot
Ein Zeiger auf die zugeordnete V_NET_ROOT-Struktur.
Create.EaBuffer
Ein Zeiger auf den Puffer für erweiterte Attribute. Dieses Member ist optional.
Create.EaLength
Die Länge des Puffers für erweiterte Attribute, EaBuffer.
Create.SdLength
Die Länge des Sicherheitsdeskriptors. RDBSS legt dies basierend auf dem Wert des Parameters.Create.SecurityContext-Members des IRP fest. Wenn der SdLength-Member nichtzero ist, wird die Sicherheitsbeschreibung im Info.Buffer-Member an den Netzwerkminiumleitungsor übergeben.
Create.PipeType
Der Typ einer Pipe. Dieses Element ist für die interne Verwendung reserviert.
Create.PipeReadMode
Der Lesemodus für eine Pipe. Dieses Element ist für die interne Verwendung reserviert.
Create.PipeCompletionMode
Der Vervollständigungsmodus für eine Pipe. Dieses Element ist für die interne Verwendung reserviert.
Create.Flags
Die Erstellungsflags
Create.Type
Der Typ der zugeordneten NET_ROOT-Struktur.
Create.RdrFlags
Create.FcbAcquired
Dieses Element ist für die interne Verwendung reserviert.
Create.TryForScavengingOnSharingViolation
Dieses Element ist für die interne Verwendung reserviert.
Create.ScavengingAlreadyTried
Dieses Element ist für die interne Verwendung reserviert.
Create.ThisIsATreeConnectOpen
Ein boolescher Wert, der angibt, ob es sich bei diesem Aufruf um eine offene Anforderung für eine Strukturverbindung handelt, die mit der option FILE_CREATE_TREE_CONNECTION im Element "IrpSp-Parameters.Create.Options>" festgelegt ist.
Create.TreeConnectOpenDeferred
Ein boolescher Wert, der angibt, dass der Netzwerk-Mini-Redirector die offene Anforderung für die Strukturverbindung zurückstellen kann.
Create.TransportName
Eine Unicode-Zeichenfolge, die den Transportnamen darstellt. Dieses Element wird über die geöffneten Parameter für die Strukturverbindung festgelegt.
Create.UserName
Eine Unicode-Zeichenfolge, die den für die Anforderung verantwortlichen Benutzernamen darstellt. Dieses Element wird über die geöffneten Parameter für die Strukturverbindung festgelegt.
Create.Password
Eine Unicode-Zeichenfolge, die das Kennwort für diesen Benutzernamen enthält, der für die Authentifizierung und Autorisierung verwendet wird. Dieses Element wird über die geöffneten Parameter für die Strukturverbindung festgelegt.
Create.UserDomainName
Eine Unicode-Zeichenfolge, die den Domänennamen für diesen Benutzernamen enthält.
QueryDirectory
Ein Strukturelement einer unbenannten Union, die für die Verarbeitung IRP_MJ_DIRECTORY_CONTROL Anforderungen verwendet wird. Dieser Member wird zum Verarbeiten von Abfrageverzeichnisanforderungen verwendet, die zu Aufrufen der MrxQueryDirectory-Routine führen. RDBSS übergibt Informationen im QueryDirectory-Strukturelement an den Netzwerkminiumleitungsor.
QueryDirectory.FileIndex
Der Index des Eintrags, an dem mit der Überprüfung des Verzeichnisses begonnen werden soll, wenn das IndexSpecified-Element auf TRUE festgelegt ist. Dieser Parameter ist auf das Element "IrpSp-Parameters.QueryDirectory.FileIndex>" festgelegt.
QueryDirectory.RestartScan
Ein auf TRUE festgelegter boolescher Wert gibt an, dass der Scan beim ersten Eintrag im Verzeichnis gestartet werden soll. Wenn dieser Wert auf FALSE festgelegt ist, wird die Überprüfung von einem vorherigen Aufruf fortgesetzt. Dieser Parameter muss beim erstmaligen Aufrufen auf TRUE festgelegt werden. Dieser Parameter wird auf TRUE festgelegt, wenn IrpSp-Flags> das SL_RESTART_SCAN Bit aktiviert hat.
QueryDirectory.ReturnSingleEntry
Ein auf TRUE festgelegter boolescher Wert gibt an, dass nur ein einzelner Eintrag zurückgegeben werden soll. Wenn dieser Parameter TRUE ist, sollte MrxQueryDirectory nur den ersten gefundenen Eintrag zurückgeben. Dieser Parameter ist auf TRUE festgelegt, wenn IrpSp-Flags> das SL_RETURN_SINGLE_ENTRY Bit aktiviert hat.
QueryDirectory.IndexSpecified
Ein auf TRUE festgelegter boolescher Wert gibt an, dass der Scan an dem Eintrag im Verzeichnis beginnt, dessen Index vom FileIndex-Element angegeben wird. Dieser Parameter ist auf TRUE festgelegt, wenn IrpSp-Flags> das SL_INDEX_SPECIFIED Bit aktiviert hat.
QueryDirectory.InitialQuery
Ein boolescher Wert, der auf TRUE festgelegt ist, wenn es sich bei der Abfrage nicht um einen Wild Karte Abfrage handelt (".", z. B.). Dieses Element wird auf TRUE festgelegt, wenn das UnicodeQueryTemplate.Buffer-Element des zugeordneten FOBX-Elements NULL ist und das Flags-Element des FOBX nicht das FOBX_FLAG_MATCH_ALL Bit aktiviert hat. Bei einer wilden Karte Abfrage ("." beispielsweise legt RDBSS den UnicodeQueryTemplate.Buffer-Member des zugeordneten FOBX auf den wilden Karte übergebenen Abfrage fest.
NotifyChangeDirectory
Ein Strukturmember einer unbenannten Union, die für die Verarbeitung IRP_MJ_DIRECTORY_CONTROL Anforderungen mit der Nebenfunktion IRP_MN_NOTIFY_CHANGE_DIRECTORY verwendet wird. Dieses Element wird für die Verarbeitung von Verzeichnisänderungsanforderungen verwendet, die zu Aufrufen der MRxLowIOSubmit[LOWIO_OP_NOTIFY_CHANGE_DIRECTORY] Routine führen. RDBSS übergibt Informationen im Strukturelement NotifyChangeDirectory und der pLowIoContext-ParamsFor.NotifyChangeDirectory-Struktur> an den Netzwerkminiumleitungsor.
NotifyChangeDirectory.pVNetRoot
Ein Zeiger auf die V_NET_ROOT Struktur, die dem Verzeichnis zugeordnet ist. Dieser Parameter ist abhängig vom Knotentyp auf das Element IrpSp-FileObject-FsContext>> oder das Element IrpSp-FileObject-FsContext2>> festgelegt.
QueryEa
Ein Strukturelement einer nicht benannten Union, die für die Verarbeitung IRP_MJ_QUERY_EA Anforderungen verwendet wird. Dieser Member wird für die Verarbeitung erweiterter Attributabfrageanforderungen verwendet, die zu Aufrufen der MRxQueryEaInfo-Routine führen. RDBSS übergibt Informationen im QueryEa-Strukturelement an den Netzwerkminiumleitungsor.
QueryEa.UserEaList
Ein Zeiger auf einen vom Aufrufer bereitgestellten Eingabepuffer, der eine FILE_GET_EA_INFORMATION-Struktur enthält, die die zu abfragenden erweiterten Attribute angibt. Dieser Parameter ist auf IrpSp-Parameters.QueryEa.EaList> festgelegt.
QueryEa.UserEaListLength
Die Länge des Puffers in Bytes, auf den das UserEaList-Element verweist. Dieser Parameter ist auf IrpSp-Parameters.QueryEa.EaListLength> festgelegt.
QueryEa.UserEaIndex
Der Index des Eintrags, an dem mit der Überprüfung der Liste der erweiterten Attribute begonnen werden soll. Dieser Parameter sollte ignoriert werden, wenn das IndexSpecified-Element nicht auf TRUE festgelegt ist oder wenn das QueryEaList-Element auf eine nicht erlösende Liste verweist. Dieser Parameter ist auf IrpSp-Parameters.QueryEa.EaIndex> festgelegt.
QueryEa.RestartScan
Ein boolescher Wert, wenn er auf TRUE festgelegt ist, gibt an, dass die Abfrage beim ersten erweiterten Attributeintrag gestartet werden soll. Wenn dieser Wert auf FALSE festgelegt ist, wird die Überprüfung von einem vorherigen Aufruf fortgesetzt. Dieser Parameter muss beim erstmaligen Aufrufen auf TRUE festgelegt werden. Dieser Parameter ist auf TRUE festgelegt, wenn IrpSp-Flags> das SL_RESTART_SCAN Bit aktiviert hat.
QueryEa.ReturnSingleEntry
Ein auf TRUE festgelegter boolescher Wert gibt an, dass nur ein einzelner Eintrag zurückgegeben werden soll. Wenn dieser Parameter TRUE ist, sollte MrxQueryEaInfo nur den ersten gefundenen Eintrag zurückgeben. Dieser Parameter ist auf TRUE festgelegt, wenn IrpSp-Flags> das SL_RETURN_SINGLE_ENTRY Bit aktiviert hat.
QueryEa.IndexSpecified
Ein boolescher Wert, wenn er auf TRUE festgelegt ist, gibt an, dass die Überprüfung am Eintrag in den erweiterten Attributen beginnt, deren Index vom UserEaIndex-Element angegeben wird. Dieser Parameter ist auf TRUE festgelegt, wenn IrpSp-Flags> das SL_INDEX_SPECIFIED Bit aktiviert hat.
QuerySecurity
Ein Strukturelement einer nicht benannten Union, die für die Verarbeitung IRP_MJ_QUERY_SECURITY Anforderungen verwendet wird. Dieser Member wird zum Verarbeiten von Abfragesicherheitsanforderungen verwendet, die zu Aufrufen der MRxQuerySdInfo-Routine führen. RDBSS übergibt Informationen im QuerySecurity-Strukturelement an den Netzwerkminiumleitungsor.
QuerySecurity.SecurityInformation
Ein Zeiger auf einen vom Aufrufer bereitgestellten Eingabepuffer, der eine SECURITY_INFORMATION-Struktur enthält, die den zu abfragenden Vorgang angibt. Dieser Parameter ist auf IrpSp-Parameters.QuerySecurity.SecurityInformation> festgelegt.
QuerySecurity.Length
Die Länge des Puffers in Bytes, auf den das SecurityInformation-Element verweist. Dieser Parameter ist auf IrpSp-Parameters.QuerySecurity.Length> festgelegt.
SetSecurity
Ein Strukturelement einer unbenannten Union, die für die Verarbeitung IRP_MJ_SET_SECURITY Anforderungen verwendet wird. Dieser Member wird zum Verarbeiten von Abfragesicherheitsanforderungen verwendet, die zu Aufrufen der MRxSetSdInfo-Routine führen. RDBSS übergibt Informationen im SetSecurity-Strukturelement an den Netzwerkminiumleitungsor.
SetSecurity.SecurityInformation
Ein Zeiger auf einen vom Aufrufer bereitgestellten Eingabepuffer, der eine SECURITY_INFORMATION-Struktur enthält, die angibt, welche Sicherheitsinformationen im Sicherheitsdeskriptor festgelegt werden sollen. Dieser Parameter ist auf IrpSp-Parameters.SetSecurity.SecurityInformation> festgelegt.
SetSecurity.SecurityDescriptor
Ein Zeiger auf eine SECURITY_DESCRIPTOR-Struktur, die die Werte der Sicherheitsinformationen enthält, die dem Objekt zugewiesen werden sollen. Dieser Parameter ist auf IrpSp-Parameters.SetSecurity.SecurityDescriptor> festgelegt.
QueryQuota
Ein Strukturmember einer unbenannten Union, die für die Verarbeitung IRP_MJ_QUERY_QUOTA Anforderungen verwendet wird. Dieser Member wird für die Verarbeitung von Abfragesicherheitsanforderungen verwendet, die zu Aufrufen der MRxQueryQuotaInfo-Routine führen. RDBSS übergibt Informationen im QueryQuota-Strukturelement an den Netzwerkminiumleitungsor.
QueryQuota.Length
Die Länge des Puffers in Bytes, auf den das StartSid-Element verweist. Dieser Parameter ist auf IrpSp-Parameters.QueryQuota.Length> festgelegt.
QueryQuota.StartSid
Ein optionaler Zeiger auf eine SID, der angibt, dass die zurückgegebenen Informationen mit einem anderen Eintrag als dem ersten Eintrag beginnen sollen. Dieser Parameter wird ignoriert, wenn das SidList-Element angegeben wird. Dieser Parameter ist auf IrpSp-Parameters.QueryQuota.StartSid> festgelegt.
QueryQuota.SidList
Ein optionaler Zeiger auf eine Liste von SIDs, deren Kontingentinformationen zurückgegeben werden sollen. Jeder Eintrag in der Liste ist eine FILE_GET_QUOTA_INFORMATION-Struktur. Dieser Parameter ist auf IrpSp-Parameters.QueryQuota.SidList> festgelegt.
QueryQuota.SidListLength
Die Länge der Liste der SIDs im SidList-Element in Bytes, sofern angegeben. Dieser Parameter ist auf IrpSp-Parameters.QueryQuota.SidListLength> festgelegt.
QueryQuota.RestartScan
Ein auf TRUE festgelegter boolescher Wert gibt an, dass die Abfrage beim ersten Eintrag gestartet werden soll. Wenn dieser Wert auf FALSE festgelegt ist, wird die Überprüfung von einem vorherigen Aufruf fortgesetzt. Dieser Parameter muss beim erstmaligen Aufrufen auf TRUE festgelegt werden. Dieser Parameter ist auf TRUE festgelegt, wenn IrpSp-Flags> das SL_RESTART_SCAN Bit aktiviert hat.
QueryQuota.ReturnSingleEntry
Ein auf TRUE festgelegter boolescher Wert gibt an, dass nur ein einzelner Eintrag zurückgegeben werden soll. Wenn dieser Parameter TRUE ist, sollte MrxQueryQuotaInfo nur den ersten gefundenen Eintrag zurückgeben. Dieser Parameter ist auf TRUE festgelegt, wenn IrpSp-Flags> das SL_RETURN_SINGLE_ENTRY Bit aktiviert hat.
QueryQuota.IndexSpecified
Ein auf TRUE festgelegter boolescher Wert gibt an, dass der Scan an dem Eintrag in der Liste beginnt, dessen Index vom StartSid-Element angegeben wird. Dieser Parameter ist auf TRUE festgelegt, wenn IrpSp-Flags> das SL_INDEX_SPECIFIED Bit aktiviert hat.
SetQuota
Ein Strukturmember einer unbenannten Union, die für die Verarbeitung IRP_MJ_SET_QUOTA Anforderungen verwendet wird. Diese Struktur wird derzeit nicht von RDBSS verwendet.
SetQuota.Length
Ein nicht verwendetes Element der SetQuota-Struktur .
DosVolumeFunction
Ein Strukturelement einer nicht benannten Union. Diese Struktur wird derzeit nicht von RDBSS verwendet.
DosVolumeFunction.VNetRoot
Ein nicht verwendetes Element der DosVolumeFunction-Struktur .
DosVolumeFunction.SrvCall
Ein nicht verwendetes Element der DosVolumeFunction-Struktur .
DosVolumeFunction.NetRoot
Ein nicht verwendetes Element der DosVolumeFunction-Struktur .
FlagsForLowIo
LowIoContext
AlsoCanonicalNameBuffer
LoudCompletionString
Ein nicht verwendetes Element der RX_CONTEXT-Struktur.
AcquireReleaseFcbTrackerX
TrackerHistoryPointer
TrackerHistory[RDBSS_TRACKER_HISTORY_SIZE]
ShadowCritOwner
StoredStatus
Ein Mitglied einer nicht benannten Union, die verwendet wird, um status Informationen von einem Netzwerk-Miniumleitungstreiber für niedrige E/A-Vorgänge zurückzugeben. RDBSS legt diesen Wert auch basierend auf dem von der MRxQueryFileInfo-Routine zurückgegebenen status fest, wenn der Dateiabfragevorgang von RDBSS nicht verstanden wird.
StoredStatusAlignment
Ein Mitglied einer nicht benannten Union, die verwendet wird, um eine ordnungsgemäße Ausrichtung des StoredStatus-Members zu erzwingen.
InformationToReturn
Ein Mitglied einer nicht benannten Union, die verwendet wird, um status Informationen von einem Netzwerk-Miniumleitungstreiber für einige niedrige E/A-Vorgänge (Lese-, Schreib-, FSCTL usw.) und MrxQueryXXX-Vorgänge zurückzugeben.
Der eindeutige Knotentyp, der für eine RX_CONTEXT-Struktur verwendet wird. Alle von RDBSS verwendeten Hauptstrukturtypen (z. B. RX_CONTEXT, SRV_CALL, NET_ROOT, V_NET_ROOT, SRV_OPEN, FCB und FOBX) verfügen über einen eindeutigen Knotentypcode vom Typ mit zwei Byte, der in der Includedatei nodetype.h definiert ist und zum Debuggen verwendet werden kann. RDBSS legt diesen Member auf RDBSS_NTC_RX_CONTEXT fest, wenn ein RX_CONTEXT in der RxInitializeContext-Routine initialisiert wird. Wenn ein Netzwerkminiumleitungstreiber eine RX_CONTEXT-Struktur mit einer anderen Methode initialisiert, muss dieser Member festgelegt werden.
RDBSS definiert dieses Member als Teil eines Standardheaders für alle von RDBSS verwendeten Strukturen.
FlagsForLowIo
Eine Reihe von Optionen, die von RDBSS festgelegt und an niedrige E/A-Vorgänge übergeben werden, die an den Netzwerkminiumleitungsor gesendet werden. FlagsForLowIo ist ein Mitglied der unbenannten Struktur, die für niedrige E/A-Anforderungen an den Netzwerkminiumleitungsor verwendet wird.
LowIoContext
Ein Zeiger auf eine LOWIO_CONTEXT-Struktur, die an den Netzwerkminiumleitungsor übergeben wird. LowIoContext ist ein Mitglied der unbenannten Struktur, die für niedrige E/A-Anforderungen verwendet wird, die an den Netzwerkminiumleitungsor gesendet werden.
Hinweise
Die RX_CONTEXT-Struktur ist eine der grundlegenden Datenstrukturen, die von RDBSS- und Netzwerkminiumleitungen zum Verwalten eines E/A-Anforderungspakets (IRP) verwendet werden. Die RX_CONTEXT Datenstruktur kapselt eine IRP für die Verwendung durch RDBSS, Netzwerkminiumleitungen und das Dateisystem. Eine RX_CONTEXT-Struktur enthält einen Zeiger auf eine einzelne IRP und den gesamten Kontext, der zum Verarbeiten des IRP erforderlich ist.
Eine RX_CONTEXT-Struktur wird manchmal als IRP-Kontext oder RxContext in den WdK- oder IFS Kit-Headerdateien und anderen Ressourcen für die Entwicklung von Netzwerk-Miniumleitungstreibern bezeichnet.
Die RX_CONTEXT ist eine Datenstruktur, an die zusätzliche Informationen der verschiedenen Netzwerkminiumleitungen angefügt sind. Die RX_CONTEXT enthält Felder für die Überzuweisung der Größe jeder RX_CONTEXT Struktur durch einen vordefinierten Betrag für jeden Netzwerkminiumleitungsor, der dann für die Verwendung durch den Miniumleitungsor reserviert ist. Dieser Ansatz besteht aus der Zuordnung eines vordefinierten Bereichs, der für alle Netzwerkminiumleitungen als Teil jedes RX_CONTEXT identisch ist. Dies ist ein unformatierter Bereich, auf dem jede gewünschte Struktur von den verschiedenen Netzwerkminiumleitungen aufgezwungen werden kann. Entwickler von Netzwerk-Miniumleitungstreibern sollten versuchen, den zugeordneten privaten Kontext zu definieren, um in diesen vordefinierten Bereich zu passen, der in der RX_CONTEXT Datenstruktur definiert ist. Netzwerk-Miniumleitungstreiber, die gegen diese Regel verstoßen, verursachen eine erhebliche Leistungseinbuße.
Viele RDBSS-Routinen und -Routinen, die von einem Netzwerkminiumleitungsor exportiert werden, verweisen auf RX_CONTEXT Strukturen entweder im initiierenden Thread oder in einem anderen thread, der von der Routine verwendet wird. Daher werden zugeordnete RX_CONTEXT Strukturen referenziert, um ihre Verwendung für asynchrone Vorgänge zu verwalten. Wenn die Verweisanzahl auf 0 steigt, kann die zugeordnete RX_CONTEXT Struktur abgeschlossen und beim letzten Dereference-Vorgang freigegeben werden.
RDBSS stellt eine Reihe von Routinen bereit, die zum Bearbeiten eines RX_CONTEXT und der zugehörigen IRP verwendet werden. Diese Routinen werden verwendet, um eine RX_CONTEXT zuzuordnen, zu initialisieren und zu löschen. Diese Routinen werden auch verwendet, um die mit einem RX_CONTEXT verknüpfte IRP abzuschließen und eine Abbruchroutine für eine RX_CONTEXT einzurichten.
Anforderungen
Anforderung | Wert |
---|---|
Header | rxcontx.h (einschließlich Rx.h, Rxcontx.h) |
Weitere Informationen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für