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)

另請參閱

ControllerControl

IoCreateController

IoDeleteController

IoFreeController