Bagikan melalui


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

IRP_MJ_CLEANUP

IRP_MJ_CLOSE

IRP_MJ_CREATE

IoCreateStreamFileObject

IoCreateStreamFileObjectEx

IoCreateStreamFileObjectLite

ObDereferenceObject