Compartir a través de


Función FsRtlDissectName (ntifs.h)

Dada una cadena pathname de Unicode, el FsRtlDissectName rutina devuelve dos cadenas, una que contiene el nombre de archivo que se encuentra en la cadena, la otra que contiene la parte restante sin analizar de la cadena pathname.

Sintaxis

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

Parámetros

[in] Path

Cadena pathname que se va a analizar.

[out] FirstName

Puntero al primer nombre de archivo de la cadena pathname.

[out] RemainingName

Puntero a la parte restante no preparada de la cadena pathname.

Valor devuelto

Ninguno

Observaciones

En la cadena de entrada, las barras diagonales inversas se leen como separadores de nombres. Se supone que el nombre de la cadena consta de todos los caracteres desde el principio de la cadena hasta el carácter anterior a la primera barra diagonal inversa, ambos incluidos. Solo hay una excepción a esta regla: si el primer carácter de la cadena de entrada es una barra diagonal inversa, este carácter se omite y no aparece en la cadena de salida. La parte restante de la cadena consta de todos los caracteres que siguen a la barra diagonal inversa que sigue el nombre que se encuentra en la cadena.

FsRtlDissectName no comprueba la presencia de caracteres no válidos en la cadena de entrada.

En la tabla siguiente se muestran los valores de entrada y salida de ejemplo para FsRtlDissectName.

Camino FirstName RemainingName
vacío vacío vacío
Un Un vacío
A\B\C\D\E Un B\C\D\E
*¿Un? *¿Un? vacío
\Un Un vacío
A[,] A[,] vacío
A\\B+;\C Un \B+;\C
 

Tenga en cuenta que al devolver, los miembros del búfer de de los parámetros de salida apuntarán al miembro del búfer de ruta de acceso. Por lo tanto, el autor de la llamada no debe asignar almacenamiento para el Buffer miembros de los dos parámetros de salida, como se muestra en el ejemplo siguiente:

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

Para obtener información sobre otras rutinas de control de cadenas, consulte rutinas de Run-Time Library (RTL).

Requisitos

Requisito Valor
de la plataforma de destino de Universal
encabezado de ntifs.h (incluya Ntifs.h)
biblioteca de NtosKrnl.lib
DLL de NtosKrnl.exe
irQL PASSIVE_LEVEL
reglas de cumplimiento de DDI HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm)

Consulte también

UNICODE_STRING