Fungsi FltGetVolumeName (fltkernel.h)
Rutinitas FltGetVolumeName mendapatkan nama volume untuk volume tertentu.
Sintaks
NTSTATUS FLTAPI FltGetVolumeName(
[in] PFLT_VOLUME Volume,
[in, out, optional] PUNICODE_STRING VolumeName,
[out, optional] PULONG BufferSizeNeeded
);
Parameter
[in] Volume
Penunjuk buram untuk volume. Parameter ini diperlukan dan tidak boleh NULL.
[in, out, optional] VolumeName
Arahkan ke struktur UNICODE_STRING yang dialokasikan penelepon yang berisi nama objek perangkat volume yang tidak persisten (misalnya, "\Device\HarddiskVolume1") saat STATUS_SUCCESS dikembalikan. Ketahuilah bahwa kumpulan untuk VolumeName-Buffer> juga dialokasikan pemanggil.
Parameter ini bersifat opsional dan dapat berupa NULL; namun harus non-NULL jika BufferSizeNeeded adalah NULL. Jika parameter ini NULL dan BufferSizeNeeded bukan NULL, FltGetVolumeName menyimpan ukuran buffer yang diperlukan untuk nama volume yang diminta dalam parameter BufferSizeNeeded dan mengembalikan STATUS_BUFFER_TOO_SMALL. Lihat Keterangan.
[out, optional] BufferSizeNeeded
Penunjuk ke variabel yang dialokasikan pemanggil yang menerima ukuran, dalam byte, dari nama volume yang diminta. Parameter ini bersifat opsional dan dapat berupa NULL; namun, itu harus non-NULL jika VolumeNameNULL sehingga FltGetVolumeName dapat menyimpan ukuran buffer yang diperlukan untuk nama volume yang diminta.
Mengembalikan nilai
FltGetVolumeName mengembalikan salah satu nilai NTSTATUS berikut:
Menampilkan kode | Deskripsi |
---|---|
STATUS_SUCCESS | Struktur UNICODE_STRING, yang ditunjukkan oleh VolumeName, berisi nama volume di anggota Buffer untuk struktur dan panjang nama, dalam byte, di anggota Panjang . |
STATUS_BUFFER_TOO_SMALL | Anggota Buffer dari struktur UNICODE_STRING, yang ditunjukkan oleh VolumeName, terlalu kecil (seperti yang ditunjukkan oleh anggota MaximumLength-nya ) untuk berisi seluruh nama volume. Ini adalah kode kesalahan. |
STATUS_INVALID_PARAMETER | VolumeName dan BufferSizeNeeded keduanya NULL. Ini adalah kode kesalahan. |
Keterangan
Agar rutinitas ini berhasil, anggota Buffer dari struktur UNICODE_STRING (ditunjukkan oleh VolumeName) harus cukup besar, seperti yang ditunjukkan oleh anggota MaximumLength-nya , untuk berisi seluruh string nama volume.
Pseudocode berikut menunjukkan satu metode yang mungkin untuk berhasil memperoleh nama volume jika BufferSizeNeeded tidak diketahui:
Panggil FltGetVolumeName untuk menentukan kumpulan yang diperlukan untuk Buffer dan ukuran yang diperlukan untuk MaximumLength. Misalnya:
FltGetVolumeName(VolumePtr, NULL, &VolumeNameSize);
Alokasikan
VolumeNameSize
byte kumpulan untuk Buffer dan atur MaximumLength keVolumeNameSize
.Panggil FltGetVolumeName lagi untuk memperoleh nama volume. Misalnya:
FltGetVolumeName(VolumePtr, &VolumeNameStruct, NULL);
VolumeNameStruct.Buffer
berisi string nama volume Unicode, yang panjangnya byte VolumeNameStruct.Length
.
Untuk mendapatkan nama GUID volume untuk volume tertentu, panggil FltGetVolumeGuidName.
Untuk mendapatkan penunjuk volume buram untuk volume dengan nama tertentu, panggil FltGetVolumeFromName.
Untuk informasi selengkapnya tentang cara memberi nama volume, lihat Mendukung Permintaan Mount Manager di Driver Kelas Penyimpanan**.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Universal |
Header | fltkernel.h (termasuk FltKernel.h) |
Pustaka | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | <= APC_LEVEL |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk