Bagikan melalui


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)

Lihat juga

IoCreateController