Partilhar via


Função FsRtlDissectDbcs (ntifs.h)

Considerando uma cadeia de caracteres ANSI ou DBCS (conjunto de caracteres duplos), o FsRtlDissectDbcs rotina retorna duas cadeias de caracteres: uma contendo o nome do primeiro arquivo encontrado na cadeia de caracteres, a outra que contém a parte não preparada restante 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 nome do primeiro arquivo na cadeia de caracteres pathname.

[out] RemainingName

Um ponteiro para a parte desparsada restante da cadeia de caracteres pathname.

Valor de retorno

Nenhum

Observações

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 seguindo a barra invertida que segue o nome encontrado na cadeia de caracteres.

FsRtlDissectDbcs não verifica 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 FirstName RemainingName
vazio vazio vazio
Um Um vazio
A\B\C\D\E Um B\C\D\E
*Um? *Um? vazio
\Um Um vazio
A[,] A[,] vazio
A\\B+;\C Um \B+;\C
 

Observe que, ao retornar, os membros do buffer de dos parâmetros de saída apontarão para o membro do Buffer do Path. Portanto, o chamador não deve alocar armazenamento para o buffer membros 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 cadeias de caracteres, consulte Run-Time Rotinas da Biblioteca de Run-Time (RTL).

Requisitos

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

Consulte também

ANSI_STRING