Fungsi IoCreateStreamFileObjectLite (ntifs.h)

Rutinitas IoCreateStreamFileObjectLite membuat objek file aliran baru, tetapi tidak menyebabkan permintaan IRP_MJ_CLEANUP dikirim ke tumpukan driver sistem file.

Sintaks

PFILE_OBJECT IoCreateStreamFileObjectLite(
  [in, optional] PFILE_OBJECT   FileObject,
  [in, optional] PDEVICE_OBJECT DeviceObject
);

Parameter

[in, optional] FileObject

Penunjuk ke objek file yang terkait dengan file aliran baru. Parameter ini bersifat opsional dan dapat berupa NULL.

[in, optional] DeviceObject

Penunjuk ke objek perangkat untuk perangkat tempat file aliran akan dibuka. Jika pemanggil menentukan nilai non-NULL untuk FileObject, nilai DeviceObject diabaikan. Jika tidak, pemanggil harus menentukan nilai non-NULL untuk DeviceObject.

Nilai kembali

IoCreateStreamFileObjectLite mengembalikan penunjuk ke objek file aliran yang baru dibuat.

Keterangan

Sistem file memanggil IoCreateStreamFileObjectLite untuk membuat objek file aliran baru. Objek file aliran identik dengan objek file biasa, kecuali bahwa bendera objek file FO_STREAM_FILE diatur.

Objek file aliran umumnya digunakan untuk mewakili aliran internal untuk volume yang dipasang oleh sistem file. File volume virtual ini memungkinkan sistem file untuk melihat, mengubah, dan menyimpan struktur pada disk volume seolah-olah itu adalah file biasa. Dalam hal ini, parameter DeviceObject dalam panggilan ke IoCreateStreamFileObjectLite menentukan objek perangkat volume (VDO) untuk volume.

Objek file aliran juga dapat digunakan untuk mewakili aliran data alternatif untuk mengakses metadata, seperti atribut yang diperluas atau deskriptor keamanan, untuk file yang sudah dibuka. Dalam hal ini, parameter FileObject dalam panggilan ke IoCreateStreamFileObjectLite menentukan objek file yang ada untuk file tersebut. Objek file aliran yang baru dibuat memungkinkan sistem file untuk melihat, mengubah, dan menyimpan metadata file seolah-olah itu adalah file biasa.

Ketika objek file aliran tidak lagi diperlukan, pemanggil harus mengurangi jumlah referensinya dengan memanggil ObDereferenceObject. Ketika jumlah referensi objek file aliran mencapai nol, permintaan IRP_MJ_CLOSE dikirim ke tumpukan driver sistem file untuk volume.

Penulis driver filter sistem file harus mencatat bahwa, tidak seperti IoCreateStreamFileObject, IoCreateStreamFileObjectLite tidak menyebabkan permintaan IRP_MJ_CLEANUP dikirim ke tumpukan driver sistem file. Untuk alasan ini, dan karena sistem file sering membuat objek file aliran sebagai efek samping dari operasi selain IRP_MJ_CREATE, sulit bagi driver filter untuk mendeteksi pembuatan objek file aliran dengan andal. Dengan demikian, driver filter seharusnya mengharapkan untuk menerima permintaan IRP_MJ_CLOSE untuk objek file yang sebelumnya tidak terlihat.

Jika kegagalan alokasi kumpulan terjadi, IoCreateStreamFileObjectLite menimbulkan pengecualian STATUS_INSUFFICIENT_RESOURCES.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000
Target Platform Universal
Header ntifs.h (termasuk Ntifs.h)
Pustaka NtosKrnl.lib
DLL NtosKrnl.exe
IRQL < DISPATCH_LEVEL

Lihat juga

IRP_MJ_CLEANUP

IRP_MJ_CLOSE

IRP_MJ_CREATE

IoCreateStreamFileObject

IoCreateStreamFileObjectEx

ObDereferenceObject