Partager via


FsRtlDissectDbcs, fonction (ntifs.h)

Étant donné une chaîne de nom de chemin d’accès ANSI ou d’un jeu de caractères double octet (DBCS), l'FsRtlDissectDbcs routine retourne deux chaînes : une contenant le premier nom de fichier trouvé dans la chaîne, l’autre contenant la partie restante sans analyse de la chaîne pathname.

Syntaxe

void FsRtlDissectDbcs(
  [in]  ANSI_STRING  Path,
  [out] PANSI_STRING FirstName,
  [out] PANSI_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 restante sans analyse de la chaîne pathname.

Valeur de retour

Aucun

Remarques

Dans la chaîne d’entrée, les barres obliques inverses sont lues en tant que séparateurs de noms. Le prénom de la chaîne est supposé être constitué de tous les caractères du début de la chaîne au caractère précédant la première barre oblique inverse, inclusive. Il n’existe qu’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 suivant la barre oblique inverse qui suit le prénom trouvé dans la chaîne.

FsRtlDissectDbcs ne vérifie pas la présence de caractères non valides dans la chaîne d’entrée.

Le tableau suivant présente des exemples de valeurs d’entrée et de sortie pour FsRtlDissectDbcs:

Chemin FirstName RemainingName
vide vide vide
Un Un vide
A\B\C\D\E Un B\C\D\E
*Un? *Un? vide
\Un Un vide
A[,] A[,] vide
A\\B+ ;\C Un \B+ ;\C
 

Notez que lors du retour, les membres de la mémoire tampon pointent vers le membre tampon de Path. Par conséquent, l’appelant ne doit pas allouer de stockage pour le Buffer membres des deux paramètres de sortie, comme illustré dans l’exemple suivant :

.
.
.
/*
The FsRtlDissectDbcs 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:
*/
FsRtlDissectDbcs (FullPathName, &CurrentComponent, &RemainingComponent);
.
.
.

Pour plus d’informations sur les autres routines de gestion des chaînes, consultez Run-Time Routines de bibliothèque (RTL).

Exigences

Exigence Valeur
client minimum pris en charge Windows 2000
plateforme cible Universel
d’en-tête ntifs.h (include FltKernel.h, Ntifs.h)
bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Voir aussi

ANSI_STRING