Función FsRtlDissectDbcs (ntifs.h)
Dada una cadena de nombre de ruta de acceso del conjunto de caracteres ansi o de doble byte (DBCS), la rutina FsRtlDissectDbcs devuelve dos cadenas: una que contiene el primer nombre de archivo que se encuentra en la cadena, la otra que contiene la parte restante sin analizar de la cadena pathname.
Sintaxis
void FsRtlDissectDbcs(
[in] ANSI_STRING Path,
[out] PANSI_STRING FirstName,
[out] PANSI_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 no analizada restante de la cadena pathname.
Valor devuelto
None
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. Hay solo 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.
FsRtlDissectDbcs 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 FsRtlDissectDbcs:
Ruta de acceso | Nombre | RemainingName |
---|---|---|
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 |
Tenga en cuenta que, al devolver, los miembros del búfer de los parámetros de salida apuntarán al miembro Buffer de Path. Por lo tanto, el autor de la llamada no debe asignar almacenamiento para los miembros buffer de los dos parámetros de salida, como se muestra en el ejemplo siguiente:
.
.
.
/*
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);
.
.
.
Para obtener información sobre otras rutinas de control de cadenas, vea Rutinas de la biblioteca en tiempo de ejecución (RTL).
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 2000 |
Plataforma de destino | Universal |
Encabezado | ntifs.h (incluya FltKernel.h, Ntifs.h) |
Library | NtosKrnl.lib |
Archivo DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |