Fungsi FltAttachVolume (fltkernel.h)
FltAttachVolume membuat instans driver minifilter baru dan melampirkannya ke volume yang diberikan.
Sintaks
NTSTATUS FLTAPI FltAttachVolume(
[in, out] PFLT_FILTER Filter,
[in, out] PFLT_VOLUME Volume,
[in, optional] PCUNICODE_STRING InstanceName,
[out] PFLT_INSTANCE *RetInstance
);
Parameter
[in, out] Filter
Penunjuk filter buram untuk pemanggil. Parameter ini diperlukan dan tidak boleh NULL.
[in, out] Volume
Penunjuk volume buram untuk volume tempat instans driver minifilter dilampirkan. Parameter ini diperlukan dan tidak boleh NULL.
[in, optional] InstanceName
Arahkan ke struktur UNICODE_STRING yang berisi nama instans untuk instans baru. Parameter ini bersifat opsional dan dapat berupa NULL. Jika NULL, FltAttachVolume mencoba membaca nama instans default driver minifilter dari registri. (Untuk informasi selengkapnya tentang parameter ini, lihat bagian Keterangan berikut.)
[out] RetInstance
Penunjuk ke variabel yang dialokasikan penelepon yang menerima penunjuk instans buram untuk instans yang baru dibuat. Parameter ini bersifat opsional dan dapat berupa NULL.
Nilai kembali
FltAttachVolume mengembalikan STATUS_SUCCESS atau nilai NTSTATUS yang sesuai seperti salah satu dari berikut ini:
Menampilkan kode | Deskripsi |
---|---|
|
Filter atau Volume yang ditentukan sedang ditumbangkan. Ini adalah kode kesalahan. |
|
Driver minifilter belum mulai memfilter. Untuk informasi selengkapnya, lihat FltStartFiltering. Ini adalah kode kesalahan. |
|
Instans sudah ada dengan nama ini pada volume yang ditentukan. |
|
FltAttachVolume mengalami kegagalan alokasi kumpulan. Ini adalah kode kesalahan. |
|
Instans lain sudah dilampirkan pada ketinggian yang ditentukan dalam atribut instans yang dibaca dari registri. Ini adalah kode kesalahan. |
Keterangan
Jika pemanggil menentukan nilai non-NULL untuk InstanceName, FltAttachVolume membaca atribut instans apa pun yang ditentukan oleh driver minifilter yang disimpan dalam registri di bawah HKLM\CurrentControlSet\Services\ServiceName\Instances\InstanceName, di mana ServiceName adalah nama layanan driver minifilter. Nama layanan ini ditentukan dalam direktif AddService di bagian DefaultInstall.Services dari file INF driver minifilter. (Untuk informasi selengkapnya tentang memfilter file INF driver, lihat Menginstal Driver Filter Sistem File.)
Jika pemanggil tidak menentukan nilai untuk InstanceName, FltAttachVolume menggunakan nama yang disimpan dalam registri di bawah HKLM\CurrentControlSet\Services\ServiceName\Instances\DefaultInstance untuk bagian InstanceName dari jalur registri.
Nama instans yang ditentukan dalam parameter InstanceName harus unik di seluruh sistem.
FltAttachVolume mengembalikan penunjuk instans buram untuk instans baru di *RetInstance. Nilai pointer ini secara unik mengidentifikasi instans driver minifilter dan tetap konstan selama instans dilampirkan ke volume.
FltAttachVolume menambahkan referensi rundown ke pointer instans buram yang dikembalikan dalam *RetInstance. Ketika pointer ini tidak lagi diperlukan, pemanggil harus melepaskannya dengan memanggil FltObjectDereference. Dengan demikian setiap panggilan yang berhasil ke FltAttachVolume harus dicocokkan dengan panggilan berikutnya ke FltObjectDereference.
Untuk melampirkan instans driver minifilter ke volume pada ketinggian tertentu, panggil FltAttachVolumeAtAltitude.
Untuk membandingkan ketinggian dua instans driver minifilter yang melekat pada volume yang sama, panggil FltCompareInstanceAltitudes.
Untuk melepaskan instans driver minifilter dari volume, panggil FltDetachVolume.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Universal |
Header | fltkernel.h (termasuk Fltkernel.h) |
Pustaka | FltMgr.lib |
IRQL | PASSIVE_LEVEL |