Função FsRtlDissectDbcs (ntifs.h)

Dada uma cadeia de caracteres ANSI ou DBCS (conjunto de caracteres de byte duplo), a rotina FsRtlDissectDbcs retorna duas cadeias de caracteres : uma contendo o primeiro nome de arquivo encontrado na cadeia de caracteres, a outra contendo a parte restante desparsada da cadeia de caracteres pathname.

Sintaxe

void FsRtlDissectDbcs(
  [in]  ANSI_STRING  Path,
  [out] PANSI_STRING FirstName,
  [out] PANSI_STRING RemainingName
);

Parâmetros

[in] Path

A cadeia de caracteres pathname a ser analisada.

[out] FirstName

Um ponteiro para o primeiro nome de arquivo na cadeia de caracteres pathname.

[out] RemainingName

Um ponteiro para a parte restante descomparnada 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 desde o 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 primeiro nome encontrado na cadeia de caracteres.

FsRtlDissectDbcs não marcar para a 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 FsRtlDissectDbcs:

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 do 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 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 obter informações sobre outras rotinas de tratamento de cadeia de caracteres, consulte Rotinas rtl (biblioteca em tempo de execução).

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000
Plataforma de Destino Universal
Cabeçalho ntifs.h (inclua FltKernel.h, Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Confira também

ANSI_STRING