Funzione FsRtlDissectName (ntifs.h)

Dato una stringa nome percorso Unicode, la routine FsRtlDissectName restituisce due stringhe, una contenente il nome del primo file trovato nella stringa, l'altra contenente la parte rimanente non archiviata della stringa del nome percorso.

Sintassi

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

Parametri

[in] Path

Stringa nome percorso da analizzare.

[out] FirstName

Puntatore al nome del primo file nella stringa nome percorso.

[out] RemainingName

Puntatore alla parte rimanente non riparata della stringa nome percorso.

Valore restituito

nessuno

Osservazioni

Nella stringa di input le barre rovesciata vengono letti come separatori dei nomi. Si presuppone che il primo nome della stringa sia costituito da tutti i caratteri dall'inizio della stringa al carattere precedente alla prima barra rovesciata, inclusiva. Esiste solo un'eccezione a questa regola: se il primo carattere della stringa di input è una barra rovesciata, questo carattere viene ignorato e non viene visualizzato nella stringa di output. La parte rimanente della stringa è costituita da tutti i caratteri che seguono la barra rovesciata che segue il nome trovato nella stringa.

FsRtlDissectName non verifica la presenza di caratteri non validi nella stringa di input.

La tabella seguente mostra i valori di input e output di esempio per FsRtlDissectName.

Percorso FirstName Nome rimanente
empty empty empty
Una Una empty
A\B\C\D\E Una B\C\D\E
*Un? *Un? empty
\A Una empty
A[,] A[,] empty
A\\B+;\C Una \B+;\C
 

Si noti che al momento della restituzione, i membri del buffer dei parametri di output puntano al membro Buffer di Path. Pertanto, il chiamante non deve allocare l'archiviazione per i membri buffer dei due parametri di output, come illustrato nell'esempio seguente:

.
.
.
/*
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);
.
.
.

Per informazioni sulle altre routine di gestione delle stringhe, vedere Routine RTL (Run-Time Library).

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Intestazione ntifs.h (include Ntifs.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Regole di conformità DDI HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

Vedi anche

UNICODE_STRING