Fungsi IoCreateStreamFileObjectEx2 (ntifs.h)
Rutinitas IoCreateStreamFileObjectEx2 membuat objek file stream baru dengan opsi buat untuk objek perangkat target.
Sintaks
NTSTATUS IoCreateStreamFileObjectEx2(
[in] PIO_CREATE_STREAM_FILE_OPTIONS CreateOptions,
[in, optional] PFILE_OBJECT FileObject,
[in, optional] PDEVICE_OBJECT DeviceObject,
[out] PFILE_OBJECT *StreamFileObject,
[out, optional] PHANDLE FileHandle
);
Parameter
[in] CreateOptions
Arahkan struktur IO_CREATE_STREAM_FILE_OPTIONS yang berisi opsi buat untuk objek file aliran baru.
[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.
[out] StreamFileObject
Arahkan ke penunjuk objek perangkat untuk menerima objek file aliran.
[out, optional] FileHandle
Penunjuk ke handel file untuk aliran pada output. Parameter ini bersifat opsional dan dapat berupa NULL.
Menampilkan nilai
IoCreateStreamFileObjectEx2 mengembalikan penunjuk ke objek file aliran yang baru dibuat.
Keterangan
Sistem file memanggil IoCreateStreamFileObjectEx2 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 IoCreateStreamFileObjectEx2 menentukan objek perangkat volume (VDO) untuk volume.
Objek file aliran juga dapat digunakan untuk mewakili aliran data alternatif untuk mengakses metadata file, seperti atribut yang diperluas atau deskriptor keamanan. Dalam hal ini, parameter FileObject dalam panggilan ke IoCreateStreamFileObjectEx2 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 IoCreateStreamFileObjectEx2 menyebabkan permintaan IRP_MJ_CLEANUP dikirim ke tumpukan driver sistem file untuk volume. 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 sayaIRP_MJ_CLEANUP dan IRP_MJ_CLOSE untuk objek file yang sebelumnya tidak terlihat.
Jika kegagalan alokasi kumpulan terjadi, IoCreateStreamFileObjectEx2 menimbulkan pengecualian STATUS_INSUFFICIENT_RESOURCES .
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 8 |
Target Platform | Universal |
Header | ntifs.h (termasuk Ntifs.h) |
Pustaka | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASIF |
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