Fungsi FltGetDiskDeviceObject (fltkernel.h)

Rutinitas FltGetDiskDeviceObject mengembalikan pointer ke objek perangkat disk yang terkait dengan volume tertentu.

Sintaks

NTSTATUS FLTAPI FltGetDiskDeviceObject(
  [in]  PFLT_VOLUME    Volume,
  [out] PDEVICE_OBJECT *DiskDeviceObject
);

Parameter

[in] Volume

Penunjuk buram untuk volume. Parameter ini diperlukan dan tidak boleh NULL.

[out] DiskDeviceObject

Penunjuk ke variabel yang dialokasikan pemanggil yang menerima penunjuk objek perangkat. Pada kesalahan apa pun, parameter ini tidak dimodifikasi.

Nilai kembali

FltGetDiskDeviceObject mengembalikan STATUS_SUCCESS atau nilai NTSTATUS yang sesuai seperti berikut ini:

Menampilkan kode Deskripsi
STATUS_FLT_NO_DEVICE_OBJECT Objek perangkat yang diminta tidak ada untuk volume yang diberikan. Ini adalah kode kesalahan.

Keterangan

FltGetDiskDeviceObject mengambil pointer ke objek perangkat penyimpanan untuk disk fisik tempat volume berada. Perangkat penyimpanan tidak perlu menjadi disk aktual.

FltGetDiskDeviceObject menaikkan jumlah referensi pada pointer objek perangkat yang dikembalikan di DiskDeviceObject. Ketika pointer ini tidak lagi diperlukan, pemanggil harus mengurangi jumlah referensi ini dengan memanggil ObDereferenceObject. Kegagalan untuk melakukannya mencegah sistem membebaskan atau menghapus objek perangkat karena referensi yang luar biasa. Dengan demikian setiap panggilan yang berhasil ke FltGetDiskDeviceObject harus dicocokkan dengan panggilan berikutnya ke ObDereferenceObject.

Minifilter harus memanggil FltGetDiskDeviceObject hanya dalam panggilan balik terkait I/O. Jika tidak, bidang objek perangkat yang dikembalikan mungkin tidak valid. Ini kasus dalam rutinitas panggilan balik seperti InstanceTeardownStartCallback dan InstanceTeardownCompleteCallback.

Untuk mendapatkan penunjuk ke objek perangkat volume Manajer Filter (VDO) untuk volume tertentu, panggil FltGetDeviceObject.

Untuk mendapatkan penunjuk volume buram untuk volume yang diwakili oleh objek perangkat volume, panggil FltGetVolumeFromDeviceObject.

Untuk informasi selengkapnya tentang objek perangkat volume, lihat Tumpukan Sistem File.

Persyaratan

Persyaratan Nilai
Target Platform Universal
Header fltkernel.h (termasuk Fltkernel.h)
Pustaka Fltmgr.lib
DLL Fltmgr.sys
IRQL <= DISPATCH_LEVEL

Lihat juga

FltGetDeviceObject

FltGetVolumeFromDeviceObject

ObDereferenceObject

ObReferenceObject