Fungsi IoAttachDeviceToDeviceStack (wdm.h)
Rutinitas IoAttachDeviceToDeviceStack melampirkan objek perangkat penelepon ke objek perangkat tertinggi dalam rantai dan mengembalikan pointer ke objek perangkat tertinggi sebelumnya.
Sintaks
PDEVICE_OBJECT IoAttachDeviceToDeviceStack(
[in] PDEVICE_OBJECT SourceDevice,
[in] PDEVICE_OBJECT TargetDevice
);
Parameter
[in] SourceDevice
Arahkan ke objek perangkat yang dibuat penelepon.
[in] TargetDevice
Penunjuk ke objek perangkat driver lain, seperti penunjuk yang dikembalikan oleh panggilan sebelumnya ke IoGetDeviceObjectPointer.
Nilai kembali
IoAttachDeviceToDeviceStack mengembalikan pointer ke objek perangkat tempat SourceDevice dilampirkan. Penunjuk objek perangkat yang dikembalikan dapat berbeda dari TargetDevice jika TargetDevice memiliki driver tambahan yang berlapis di atasnya.
IoAttachDeviceToDeviceStack mengembalikan NULL jika tidak dapat melampirkan objek perangkat karena, misalnya, perangkat target sedang dibongkar.
Keterangan
IoAttachDeviceToDeviceStack menetapkan lapisan antar driver sehingga IRP yang sama dikirim ke setiap driver dalam rantai.
Driver perantara dapat menggunakan rutinitas ini selama inisialisasi untuk melampirkan objek perangkatnya sendiri ke objek perangkat driver lain. Permintaan I/O berikutnya yang dikirim ke TargetDevice dikirim terlebih dahulu ke driver perantara.
Rutinitas ini mengatur AlignmentRequirement di SourceDevice ke nilai di objek perangkat berikutnya yang lebih rendah dan mengatur StackSize ke nilai di objek berikutnya yang lebih rendah ditambah satu.
Seorang penulis driver harus berhati-hati untuk memanggil rutinitas ini sebelum driver yang harus melapisi di atas driver mereka. IoAttachDeviceToDeviceStack melampirkan SourceDevice ke objek perangkat tertinggi yang saat ini berlapis dalam rantai dan tidak memiliki cara untuk menentukan apakah driver sedang dilapisi dalam urutan yang benar.
Driver yang memperoleh pointer ke perangkat target dengan memanggil IoGetDeviceObjectPointer harus memanggil ObDereferenceObject dengan pointer objek file yang dikembalikan oleh IoGetDeviceObjectPointer untuk merilis referensinya ke objek file sebelum melepaskan objek perangkatnya sendiri, misalnya, ketika driver tingkat yang lebih tinggi tersebut tidak dimuat.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Tersedia dimulai dengan Windows 2000. |
Target Platform | Universal |
Header | wdm.h (termasuk Wdm.h, Ntddk.h, Ntifs.h) |
Pustaka | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |
Aturan kepatuhan DDI | AddDevice(wdm), HwStorPortProhibitedDDIs(storport), PnpSameDeviceObject(wdm) |