CONTROLLER_OBJECT結構 (ntddk.h)
控制器物件代表具有同質裝置的硬體適配卡或控制器,這些裝置是 I/O 要求的實際目標。 控制器物件可用來透過其硬體適配卡/控制器,將裝置驅動程式的 I/O 同步處理至目標裝置。
控制器物件部分不透明。 驅動程式寫入器必須知道與控制器物件相關聯的特定欄位,因為其驅動程式會透過 IoCreateController 所傳回的控制器物件指標存取此字段,。 建立驅動程式可以存取控制器物件中的下列欄位。
語法
typedef struct _CONTROLLER_OBJECT {
CSHORT Type;
CSHORT Size;
PVOID ControllerExtension;
KDEVICE_QUEUE DeviceWaitQueue;
ULONG Spare1;
LARGE_INTEGER Spare2;
} CONTROLLER_OBJECT, *PCONTROLLER_OBJECT;
成員
Type
Size
ControllerExtension
控制器擴充功能的指標。 控制器延伸模組的結構和內容是驅動程式定義的。 大小是由驅動程序決定的,在驅動程式呼叫 IoCreateController中指定。 通常,驅動程式會在控制器擴充功能中維護 I/O 作業的常見狀態,以及對應裝置擴充功能中目標裝置的 I/O 特定狀態。
DeviceWaitQueue
Spare1
Spare2
言論
處理 IRP 的大部分驅動程式例程都會獲得目標裝置物件的指標。 因此,使用控制器對象的設備驅動器通常會在每個裝置擴充功能中,IoCreateController 傳回的控制器物件指標儲存。
請注意,控制器對象沒有名稱,因此它不能是I/O要求的目標,而較高層級的驅動程式無法連線或附加其裝置物件至裝置驅動程式的控制器物件。
控制器物件內的未記載欄位應該視為無法存取。 與物件欄位位置相依性的驅動程式,或存取未記載欄位的驅動程式可能無法隨著時間保持可攜式且與其他驅動程式互通。
要求
要求 | 價值 |
---|---|
標頭 | ntddk.h (包括 Ntddk.h) |