Bagikan melalui


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)

Lihat juga

UNICODE_STRING