struktur FLT_FILE_NAME_INFORMATION (fltkernel.h)
Struktur FLT_FILE_NAME_INFORMATION berisi informasi nama file.
Sintaks
typedef struct _FLT_FILE_NAME_INFORMATION {
USHORT Size;
FLT_FILE_NAME_PARSED_FLAGS NamesParsed;
FLT_FILE_NAME_OPTIONS Format;
UNICODE_STRING Name;
UNICODE_STRING Volume;
UNICODE_STRING Share;
UNICODE_STRING Extension;
UNICODE_STRING Stream;
UNICODE_STRING FinalComponent;
UNICODE_STRING ParentDir;
} FLT_FILE_NAME_INFORMATION, *PFLT_FILE_NAME_INFORMATION;
Anggota
Size
Ukuran, dalam byte, dari struktur FLT_FILE_NAME_INFORMATION.
NamesParsed
Bitmask bendera yang menunjukkan komponen nama mana yang telah diurai dari string Nama oleh FltParseFileNameInformation. Perhatikan bahwa, saat mengurai string Nama , FltParseFileNameInformation mengatur bendera ini untuk setiap komponen, apakah komponen ditemukan ada dalam string. Nilai-nilai ini dapat digabungkan dengan menggunakan operator OR.
Bendera | Komponen |
---|---|
FLTFL_FILE_NAME_PARSED_FINAL_COMPONENT | FinalComponent |
FLTFL_FILE_NAME_PARSED_EXTENSION | Ekstensi |
FLTFL_FILE_NAME_PARSED_STREAM | Stream |
FLTFL_FILE_NAME_PARSED_PARENT_DIR | ParentDir |
Format
Format informasi nama yang disimpan di anggota Nama . Anggota ini bisa menjadi salah satu nilai berikut. (Untuk penjelasan tentang format ini, lihat bagian Keterangan berikut.)
Nilai | Makna |
---|---|
FLT_FILE_NAME_NORMALIZED | Anggota Nama berisi nama yang dinormalisasi untuk file. |
FLT_FILE_NAME_OPENED | Anggota Nama berisi nama yang digunakan saat file dibuka. String nama ini tidak dinormalisasi. |
FLT_FILE_NAME_SHORT | Anggota Nama berisi nama pendek (8.3) untuk file tersebut. Nama pendek untuk file tidak menyertakan nama volume, jalur direktori, atau nama aliran. String nama ini tidak dinormalisasi. |
Name
UNICODE_STRING struktur yang berisi string nama file, diformat seperti yang ditentukan oleh anggota Format .
Volume
UNICODE_STRING struktur yang berisi nama volume yang diurai dari string Nama . Jika Format FLT_FILE_NAME_SHORT, Volume.Length adalah nol.
Share
UNICODE_STRING struktur yang berisi nama berbagi jaringan yang diurai dari string Nama untuk file jarak jauh. Jika Format FLT_FILE_NAME_SHORT, Share.Length adalah nol.
Extension
UNICODE_STRING struktur yang berisi ekstensi yang diurai dari string Nama . Jika tidak ada ekstensi yang ditemukan, FltParseFileNameInformation mengatur Extension.Length ke nol.
Stream
UNICODE_STRING struktur yang berisi nama aliran yang diurai dari string Nama . Jika tidak ada nama aliran yang ditemukan, atau jika Format FLT_FILE_NAME_SHORT, FltParseFileNameInformation menetapkan Stream. Panjang hingga nol.
FinalComponent
UNICODE_STRING struktur yang berisi komponen nama akhir yang diurai dari string Nama . Jika tidak ada nama komponen akhir yang ditemukan, atau jika Format FLT_FILE_NAME_SHORT, FltParseFileNameInformation mengatur FinalComponent.Length ke nol.
ParentDir
UNICODE_STRING struktur yang berisi nama direktori induk yang diurai dari string Nama oleh FltParseFileNameInformation. Jika tidak ada nama direktori induk yang ditemukan, atau jika Format FLT_FILE_NAME_SHORT, FltParseFileNameInformation mengatur ParentDir.Length ke nol.
Keterangan
Anggota Nama berisi salah satu hal berikut ini:
- Nama yang dinormalisasi untuk file
- Nama yang dibuka untuk file
- Nama pendek untuk file
- Ini berisi jalur direktori lengkap untuk file, termasuk nama volume, kecuali pengguna membuka file dengan ID file tetapi tidak memiliki hak istimewa melintasi untuk seluruh jalur. (Untuk informasi selengkapnya, lihat FltGetFileNameInformation.)
- Nama volume adalah nama objek perangkat volume yang tidak konsisten (misalnya, "\Device\HarddiskVolume1").
- Semua nama pendek diperluas ke nama panjang yang setara.
- String ":$DATA" atau "::$DATA" berikutnya dihapus dari nama aliran.
- Semua titik pemasangan diselesaikan.
\Device\HarddiskVolume1\Documents and Settings\MyUser\My Documents\Test Results.txt:stream1
Berikut ini adalah contoh nama file yang dinormalisasi untuk file jarak jauh:
\Device\LanManRedirector\MyServer\MyShare\Documents and Settings\MyUser\My Documents\Test Results.txt:stream1
Nama yang dibuka untuk file adalah nama yang digunakan ketika file dibuka. Seperti nama yang dinormalisasi, ini berisi jalur direktori lengkap untuk file, termasuk nama volume. Ini berbeda dari nama yang dinormalisasi dengan cara berikut:
- Jalur direktori untuk file dapat berisi nama pendek serta nama panjang.
- String ":$DATA" dan "::$DATA" berikutnya tidak dihapus dari nama aliran.
- Titik pemasangan tidak diselesaikan.
\Device\HarddiskVolume1\Docume~1\MyUser\MYDOCU~1\Test Results.txt:stream1:$DATA
Berikut ini adalah contoh nama file yang dibuka untuk file jarak jauh:
\Device\LanManRedirector\MyServer\MyShare\Documents and Settings\MyUser\My Documents\Test Results.txt:stream1
Nama pendek untuk file adalah nama pendek (8.3) untuk komponen akhir nama file. Karena dihasilkan ketika file dibuka, nama pendek tidak tersedia untuk objek file yang tidak dibuka, dan tidak tersedia di jalur buat pengiriman ("pra-buat"). Ini juga tidak tersedia untuk objek file aliran NTFS. Tidak semua file yang terbuka memiliki nama file pendek. Misalnya, pada partisi NTFS di mana pembuatan nama file pendek telah dinonaktifkan, tidak ada file yang memiliki nama file pendek.
Berikut ini adalah contoh nama pendek untuk file:
TestRe~1.txt
Untuk mendapatkan struktur FLT_FILE_NAME_INFORMATION untuk file, panggil FltGetFileNameInformation, FltGetFileNameInformationUnsafe, atau FltGetDestinationFileNameInformation. Rutinitas ini mengembalikan penunjuk ke struktur FLT_FILE_NAME_INFORMATION milik Manajer Filter yang dibagikan oleh semua minifilter.
Meskipun berisi banyak struktur UNICODE_STRING , struktur FLT_FILE_NAME_INFORMATION tidak menempati banyak ruang dalam memori karena semua struktur UNICODE_STRING dalam struktur FLT_FILE_NAME_INFORMATION berbagi buffer tunggal.
Untuk mengurai konten string Nama , panggil FltParseFileNameInformation. Rutinitas ini menetapkan nilai anggota Ekstensi, Stream, FinalComponent, ParentDir, dan NamesParsed dari struktur ini.
Minifilter bertanggung jawab untuk memanggil FltReleaseFileNameInformation untuk merilis struktur FLT_FILE_NAME_INFORMATION ketika tidak lagi diperlukan.
Persyaratan
Persyaratan | Nilai |
---|---|
Header | fltkernel.h (termasuk Fltkernel.h) |
Lihat juga
FltGetDestinationFileNameInformation
FltGetFileNameInformationUnsafe