Функция 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 |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по