Fonction FsRtlDissectName (ntifs.h)
Avec une chaîne de chemin d’accès Unicode, la routine FsRtlDissectName retourne deux chaînes, l’une contenant le premier nom de fichier trouvé dans la chaîne, l’autre contenant la partie restante de la chaîne de nom de chemin d’accès.
Syntaxe
void FsRtlDissectName(
[in] UNICODE_STRING Path,
[out] PUNICODE_STRING FirstName,
[out] PUNICODE_STRING RemainingName
);
Paramètres
[in] Path
Chaîne pathname à analyser.
[out] FirstName
Pointeur vers le premier nom de fichier dans la chaîne pathname.
[out] RemainingName
Pointeur vers la partie non épluchée restante de la chaîne pathname.
Valeur de retour
None
Remarques
Dans la chaîne d’entrée, les barres obliques inverses sont lues comme séparateurs de noms. Le prénom de la chaîne est supposé se composer de tous les caractères, du début de la chaîne au caractère précédant la première barre oblique inverse, inclusivement. Il existe une seule exception à cette règle : si le premier caractère de la chaîne d’entrée est une barre oblique inverse, ce caractère est ignoré et n’apparaît pas dans la chaîne de sortie. La partie restante de la chaîne se compose de tous les caractères qui suivent la barre oblique inverse qui suit le prénom trouvé dans la chaîne.
FsRtlDissectName ne case activée pas pour la présence de caractères non autorisés dans la chaîne d’entrée.
Le tableau suivant montre des exemples de valeurs d’entrée et de sortie pour FsRtlDissectName.
Chemin d’accès | FirstName | Nom restant |
---|---|---|
empty | empty | empty |
A | A | empty |
A\B\C\D\E | A | B\C\D\E |
*Un? | *Un? | empty |
\A | A | empty |
A[,] | A[,] | empty |
A\\B+ ;\C | A | \B+ ;\C |
Notez que lors du retour, les membres de la mémoire tampon des paramètres de sortie pointent vers le membre Tampon de Path. Par conséquent, l’appelant ne doit pas allouer de stockage pour les membres Buffer des deux paramètres de sortie, comme illustré dans l’exemple suivant :
.
.
.
/*
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);
.
.
.
Pour plus d’informations sur d’autres routines de gestion de chaînes, consultez Routines de la bibliothèque d’exécution (RTL).
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Universal |
En-tête | ntifs.h (inclure Ntifs.h) |
Bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Règles de conformité DDI | HwStorPortProhibitedDDIs(storport),PowerIrpDDis(wdm) |