Função FsRtlDissectName (ntifs.h)

Dada uma cadeia de caracteres de nome de caminho Unicode, a rotina FsRtlDissectName retorna duas cadeias de caracteres, uma contendo o primeiro nome de arquivo encontrado na cadeia de caracteres, a outra que contém a parte restante nãoparsada da cadeia de caracteres pathname.

Sintaxe

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

Parâmetros

[in] Path

Cadeia de caracteres pathname a ser analisada.

[out] FirstName

Ponteiro para o primeiro nome de arquivo na cadeia de caracteres pathname.

[out] RemainingName

Ponteiro para a parte nãoparsada restante da cadeia de caracteres pathname.

Retornar valor

Nenhum

Comentários

Na cadeia de caracteres de entrada, as barras invertidas são lidas como separadores de nome. Supõe-se que o primeiro nome na cadeia de caracteres consista em todos os caracteres do início da cadeia de caracteres até o caractere anterior à primeira barra invertida, inclusive. Há apenas uma exceção a essa regra: se o primeiro caractere na cadeia de caracteres de entrada for uma barra invertida, esse caractere será ignorado e não aparecerá na cadeia de caracteres de saída. A parte restante da cadeia de caracteres consiste em todos os caracteres após a barra invertida que segue o nome encontrado na cadeia de caracteres.

FsRtlDissectName não marcar pela presença de caracteres ilegais na cadeia de caracteres de entrada.

A tabela a seguir mostra valores de entrada e saída de exemplo para FsRtlDissectName.

Caminho Nome RemainingName
vazio vazio vazio
A A vazio
A\B\C\D\E A B\C\D\E
*Um? *Um? vazio
\A A vazio
A[,] A[,] vazio
A\\B+;\C A \B+;\C
 

Observe que, ao retornar , os membros buffer dos parâmetros de saída apontarão para o membro Buffer de Path. Portanto, o chamador não deve alocar armazenamento para os membros buffer dos dois parâmetros de saída, conforme mostrado no exemplo a seguir:

.
.
.
/*
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 obter informações sobre outras rotinas de manipulação de cadeia de caracteres, consulte Rotinas da RTL (Biblioteca em Tempo de Execução).

Requisitos

Requisito Valor
Plataforma de Destino Universal
Cabeçalho ntifs.h (inclua Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Regras de conformidade da DDI HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

Confira também

UNICODE_STRING