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) |