Поделиться через


Функция FsRtlDissectDbcs (ntifs.h)

Учитывая строку имени пути ANSI или двухбайтового набора символов (DBCS), FsRtlDissectDbcs возвращает две строки: одну, содержащую имя первого файла, найденное в строке, а другая, содержащая оставшуюся непарализированную часть строки имени пути.

Синтаксис

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

Параметры

[in] Path

Строка имени пути для синтаксического анализа.

[out] FirstName

Указатель на имя первого файла в строке имени пути.

[out] RemainingName

Указатель на оставшуюся непарассированную часть строки имени пути.

Возвращаемое значение

Никакой

Замечания

В входной строке обратные очки считываются как разделители имен. Предполагается, что первое имя строки состоит из всех символов с начала строки до символа, предшествующего первой обратной косой черте, включительно. Существует только одно исключение из этого правила: если первый символ в входной строке является обратной косой чертой, этот символ игнорируется и не отображается в выходной строке. Оставшаяся часть строки состоит из всех символов после обратной косой черты, следующей за первым именем, найденным в строке.

FsRtlDissectDbcs не проверяет наличие недопустимых символов в входной строке.

В следующей таблице показаны примеры входных и выходных значений для FsRtlDissectDbcs:

Путь FirstName Оставшееся имя
пустой пустой пустой
A A пустой
A\B\C\D\E A B\C\D\E
*A? *A? пустой
\A A пустой
A[,] A[,] пустой
A\\B+;\C A \B+;\C
 

Обратите внимание, что при возвращении элементы буфера буфера выходных параметров будут указывать на элемент буфера пути. Поэтому вызывающий объект не должен выделять хранилище для буфера членов двух выходных параметров, как показано в следующем примере:

.
.
.
/*
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);
.
.
.

Дополнительные сведения о других подпрограммах обработки строк см. в Run-Time подпрограммах библиотеки (RTL).

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 2000
целевая платформа Всеобщий
заголовка ntifs.h (include FltKernel.h, Ntifs.h)
библиотеки NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

См. также

ANSI_STRING