FsRtlDissectName-Funktion (ntifs.h)

Bei einer Unicode-Pfadname-Zeichenfolge gibt die FsRtlDissectName-Routine zwei Zeichenfolgen zurück: eine enthält den ersten Dateinamen in der Zeichenfolge, die andere den verbleibenden nicht analysierten Teil der Pathname-Zeichenfolge.

Syntax

void FsRtlDissectName(
  [in]  UNICODE_STRING  Path,
  [out] PUNICODE_STRING FirstName,
  [out] PUNICODE_STRING RemainingName
);

Parameter

[in] Path

Die zu analysierende Pathname-Zeichenfolge.

[out] FirstName

Zeiger auf den ersten Dateinamen in der Pathname-Zeichenfolge.

[out] RemainingName

Zeiger auf den verbleibenden nicht analysierten Teil der Pathname-Zeichenfolge.

Rückgabewert

Keine

Bemerkungen

In der Eingabezeichenfolge werden umgekehrte Schrägstriche als Namenstrennzeichen gelesen. Es wird davon ausgegangen, dass der Vorname in der Zeichenfolge aus allen Zeichen vom Anfang der Zeichenfolge bis zum Zeichen vor dem ersten umgekehrten Schrägstrich besteht, inklusive. Es gibt nur eine Ausnahme von dieser Regel: Wenn das erste Zeichen in der Eingabezeichenfolge ein umgekehrter Schrägstrich ist, wird dieses Zeichen ignoriert und wird nicht in der Ausgabezeichenfolge angezeigt. Der verbleibende Teil der Zeichenfolge besteht aus allen Zeichen, die dem umgekehrten Schrägstrich folgen, der auf den Vornamen in der Zeichenfolge folgt.

FsRtlDissectName überprüft nicht, ob unzulässige Zeichen in der Eingabezeichenfolge vorhanden sind.

Die folgende Tabelle enthält Beispieleingabe- und Ausgabewerte für FsRtlDissectName.

Pfad FirstName RemainingName
empty empty empty
Ein Ein empty
A\B\C\D\E Ein B\C\D\E
*Eine? *Eine? empty
\A Ein empty
A[,] A[,] empty
A\\B+;\C Ein \B+;\C
 

Beachten Sie, dass bei der Rückgabe die Buffer-Member der Ausgabeparameter auf den Buffer-Member von Path zeigen. Daher sollte der Aufrufer keinen Speicher für die Buffer-Member der beiden Ausgabeparameter zuweisen, wie im folgenden Beispiel gezeigt:

.
.
.
/*
The FsRtlDissectName routine will set the members
of the following two structures appropriately:
*/
UNICODE_STRING CurrentComponent;
UNICODE_STRING RemainingComponent;

/*
Do not allocate storage for the Buffer members of CurrentComponent
and RemainingComponent in that they will point into the previously
allocated storage of FullPathName's Buffer member:
*/
FsRtlDissectName (FullPathName, &CurrentComponent, &RemainingComponent);
.
.
.

Informationen zu anderen Zeichenfolgenverarbeitungsroutinen finden Sie unter Laufzeitbibliotheksroutinen (RTL).

Anforderungen

Anforderung Wert
Zielplattform Universell
Header ntifs.h (include Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI-Complianceregeln HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm)

Weitere Informationen

UNICODE_STRING