Bagikan melalui


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)

Lihat juga

IoAttachDevice

IoDetachDevice

IoGetDeviceObjectPointer

ObDereferenceObject