Fungsi FsRtlDissectName (ntifs.h)
Mengingat string nama jalur Unicode, rutinitas FsRtlDissectName mengembalikan dua string, satu berisi nama file pertama yang ditemukan dalam string, yang lain berisi bagian yang tidak diurai yang tersisa dari string nama jalur.
Sintaks
void FsRtlDissectName(
[in] UNICODE_STRING Path,
[out] PUNICODE_STRING FirstName,
[out] PUNICODE_STRING RemainingName
);
Parameter
[in] Path
String nama jalur yang akan diurai.
[out] FirstName
Penunjuk ke nama file pertama dalam string nama jalur.
[out] RemainingName
Penunjuk ke bagian unparsed yang tersisa dari string nama jalur.
Nilai kembali
Tidak ada
Keterangan
Dalam string input, garis miring terbalik dibaca sebagai pemisah nama. Nama pertama dalam string diasumsikan terdiri dari semua karakter dari awal string ke karakter sebelum garis miring terbalik pertama, inklusif. Hanya ada satu pengecualian untuk aturan ini: jika karakter pertama dalam string input adalah garis miring terbalik, karakter ini diabaikan dan tidak muncul dalam string output. Bagian string yang tersisa terdiri dari semua karakter setelah garis miring terbelakang yang mengikuti nama depan yang ditemukan dalam string.
FsRtlDissectName tidak memeriksa keberadaan karakter ilegal dalam string input.
Tabel berikut ini memperlihatkan contoh nilai input dan output untuk FsRtlDissectName.
Jalur | NamaDepan | Nama Yang Tersisa |
---|---|---|
kosong | kosong | kosong |
A | A | kosong |
A\B\C\D\E | A | B\C\D\E |
*J? | *J? | kosong |
\J | A | kosong |
A[,] | A[,] | kosong |
A\\B+;\C | A | \B+;\C |
Perhatikan bahwa setelah kembali, anggota Buffer dari parameter output akan menunjuk ke anggota BufferPath. Oleh karena itu, pemanggil tidak boleh mengalokasikan penyimpanan untuk anggota Buffer dari dua parameter output, seperti yang ditunjukkan dalam contoh berikut:
.
.
.
/*
The FsRtlDissectName 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:
*/
FsRtlDissectName (FullPathName, &CurrentComponent, &RemainingComponent);
.
.
.
Untuk informasi tentang rutinitas penanganan string lainnya, lihat Rutinitas Pustaka Run-Time (RTL).
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Universal |
Header | ntifs.h (termasuk Ntifs.h) |
Pustaka | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Aturan kepatuhan DDI | HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |