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) |