Condividi tramite


CONTROLLER_OBJECT struttura (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 ai 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;

Members

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 su I/O per un dispositivo di destinazione nell'estensione del dispositivo corrispondente.

DeviceWaitQueue

Spare1

Spare2

Commenti

La maggior parte delle routine del driver che elaborano i provider di servizi di integrazione vengono assegnati a 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 alcun 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 propri 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 sulle posizioni dei campi oggetto o l'accesso ai campi non documentati potrebbero non rimanere portabili e interoperabili con altri driver nel tempo.

Requisiti

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

Vedi anche

IoCreateController