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

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

Синтаксис

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

Параметры

[in] Path

Строка pathname для анализа.

[out] FirstName

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

[out] RemainingName

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

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

None

Remarks

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

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

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

Путь FirstName RemainingName
пустых пустых пустых
Объект Объект пустых
A\B\C\D\E A B\C\D\E
*A? *A? пустых
\A A пустых
A[,] A[,] пустых
A\\B+;\C A \B+;\C
 

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

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

Сведения о других процедурах обработки строк см. в статье Подпрограммы библиотеки времени выполнения (RTL).

Требования

Требование Значение
Минимальная версия клиента Windows 2000
Целевая платформа Универсальное
Верхняя часть ntifs.h (включая FltKernel.h, Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

См. также раздел

ANSI_STRING