IoAllocateController 函式 (ntddk.h)
IoAllocateController 例程會在指定裝置物件所代表的裝置控制器,立即設定驅動程式提供的 ControllerControl 例程呼叫,即可執行目標裝置的 I/O 作業,由指定的裝置物件表示。
語法
void IoAllocateController(
[in] PCONTROLLER_OBJECT ControllerObject,
[in] PDEVICE_OBJECT DeviceObject,
[in] PDRIVER_CONTROL ExecutionRoutine,
[in, optional] PVOID Context
);
參數
[in] ControllerObject
驅動程式建立的控制器物件的指標,通常代表要配置給連結裝置上 I/O 作業的實體控制器。
[in] DeviceObject
裝置物件的指標,表示目前 IRP 的目標裝置。
[in] ExecutionRoutine
驅動程式提供的 ControllerControl 例程指標。
[in, optional] Context
驅動程式決定內容的指標,在呼叫驅動程式時傳遞至驅動程式的 ControllerControl 例程。
傳回值
無
備註
此例程會保留指定裝置之硬體控制器的獨佔存取權。
ControllerControl 例程會傳回值,指出控制器是否仍配置給裝置,無論是 DeallocateObject 還是 KeepObject。 如果它傳回 KeepObject,驅動程式後續必須呼叫 IoFreeController 以釋放控制器物件。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 從 Windows 2000 開始提供。 |
目標平台 | Universal |
標頭 | ntddk.h (包含 Ntddk.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | DISPATCH_LEVEL |
DDI 合規性規則 | HwStorPortProhibitedDIS (storport) 、 IrqlDispatch (storport ) 、IrqlDispatch (storport) 、 IrqlDispatch (wdm ) 、 SpNoWait (storport) 、 StorPortStartIo (storport) |