struktur CONTROLLER_OBJECT (ntddk.h)
Objek pengontrol mewakili adaptor atau pengontrol perangkat keras dengan perangkat homogen yang merupakan target aktual untuk permintaan I/O. Objek pengontrol dapat digunakan untuk menyinkronkan I/O driver perangkat ke perangkat target melalui adapter/pengontrol perangkat kerasnya.
Objek pengontrol sebagian buram. Penulis driver harus tahu tentang bidang tertentu yang terkait dengan objek pengontrol karena driver mereka mengakses bidang ini melalui penunjuk objek pengontrol yang dikembalikan oleh IoCreateController. Bidang berikut dalam objek pengontrol dapat diakses oleh driver pembuatan.
Sintaks
typedef struct _CONTROLLER_OBJECT {
CSHORT Type;
CSHORT Size;
PVOID ControllerExtension;
KDEVICE_QUEUE DeviceWaitQueue;
ULONG Spare1;
LARGE_INTEGER Spare2;
} CONTROLLER_OBJECT, *PCONTROLLER_OBJECT;
Anggota
Type
Size
ControllerExtension
Arahkan ke ekstensi pengontrol. Struktur dan isi ekstensi pengontrol ditentukan driver. Ukuran ditentukan driver, ditentukan dalam panggilan driver ke IoCreateController. Biasanya, driver mempertahankan status umum tentang operasi I/O dalam ekstensi pengontrol dan status khusus perangkat tentang I/O untuk perangkat target di ekstensi perangkat yang sesuai.
DeviceWaitQueue
Spare1
Spare2
Keterangan
Sebagian besar rutinitas driver yang memproses RUNP diberikan penunjuk ke objek perangkat target. Akibatnya, driver perangkat yang menggunakan objek pengontrol sering menyimpan penunjuk objek pengontrol yang dikembalikan oleh IoCreateController di setiap ekstensi perangkat.
Perhatikan bahwa objek pengontrol tidak memiliki nama sehingga tidak dapat menjadi target permintaan I/O, dan driver tingkat yang lebih tinggi tidak dapat menyambungkan atau melampirkan objek perangkat mereka ke objek pengontrol driver perangkat.
Bidang yang tidak terdokumentasi dalam objek pengontrol harus dianggap tidak dapat diakses. Driver dengan dependensi pada lokasi bidang objek atau akses ke bidang yang tidak terdokumentasi mungkin tidak tetap portabel dan dapat dioperasikan dengan driver lain dari waktu ke waktu.
Persyaratan
Persyaratan | Nilai |
---|---|
Header | ntddk.h (termasuk Ntddk.h) |