Bagikan melalui


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
STATUS_FLT_DELETING_OBJECT
Filter atau Volume yang ditentukan sedang ditumbangkan. Ini adalah kode kesalahan.
STATUS_FLT_FILTER_NOT_READY
Driver minifilter belum mulai memfilter. Untuk informasi selengkapnya, lihat FltStartFiltering. Ini adalah kode kesalahan.
STATUS_FLT_INSTANCE_NAME_COLLISION
Instans sudah ada dengan nama ini pada volume yang ditentukan.
STATUS_INSUFFICIENT_RESOURCES
FltAttachVolume mengalami kegagalan alokasi kumpulan. Ini adalah kode kesalahan.
STATUS_OBJECT_NAME_COLLISION
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

Lihat juga

FltAttachVolumeAtAltitude

FltCompareInstanceAltitudes

FltDetachVolume

FltGetVolumeInstanceFromName

FltObjectDereference

FltStartFiltering

UNICODE_STRING