Condividi tramite


struttura CONTROLLER_OBJECT (ntddk.h)

Un oggetto controller rappresenta un adattatore hardware o un controller con dispositivi omogenei che rappresentano le destinazioni effettive per le richieste di I/O. Un oggetto controller può essere usato per sincronizzare l'I/O di un driver di dispositivo con i dispositivi di destinazione tramite la relativa scheda hardware/controller.

Un oggetto controller è parzialmente opaco. I writer di driver devono conoscere un determinato campo associato all'oggetto controller perché i driver accedono a questo campo tramite il puntatore a oggetti controller restituito da IoCreateController. Il campo seguente in un oggetto controller è accessibile al driver di creazione.

Sintassi

typedef struct _CONTROLLER_OBJECT {
  CSHORT        Type;
  CSHORT        Size;
  PVOID         ControllerExtension;
  KDEVICE_QUEUE DeviceWaitQueue;
  ULONG         Spare1;
  LARGE_INTEGER Spare2;
} CONTROLLER_OBJECT, *PCONTROLLER_OBJECT;

Membri

Type

Size

ControllerExtension

Puntatore all'estensione del controller. La struttura e il contenuto dell'estensione del controller sono definiti dal driver. Le dimensioni sono determinate dal driver, specificate nella chiamata del driver a IoCreateController. In genere, i driver mantengono lo stato comune sulle operazioni di I/O nell'estensione del controller e sullo stato specifico del dispositivo per un dispositivo di destinazione nell'estensione del dispositivo corrispondente.

DeviceWaitQueue

Spare1

Spare2

Osservazioni

La maggior parte delle routine del driver che elaborano i runtime di integrazione viene assegnato un puntatore all'oggetto dispositivo di destinazione. Di conseguenza, i driver di dispositivo che usano oggetti controller archiviano spesso il puntatore a oggetti controller restituito da IoCreateController in ogni estensione del dispositivo.

Si noti che un oggetto controller non ha un nome, pertanto non può essere la destinazione di una richiesta di I/O e i driver di livello superiore non possono connettersi o collegare i relativi oggetti dispositivo all'oggetto controller di un driver di dispositivo.

I campi non documentati all'interno di un oggetto controller devono essere considerati inaccessibili. I driver con dipendenze dalle posizioni dei campi oggetto o l'accesso a campi non documentati potrebbero non rimanere portabili e interoperabili con altri driver nel tempo.

Fabbisogno

Requisito Valore
intestazione ntddk.h (include Ntddk.h)

Vedere anche

IoCreateController