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 开始可用。
目标平台 通用
标头 ntddk.h (包括 Ntddk.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL DISPATCH_LEVEL
DDI 符合性规则 HwStorPortProhibitedDDI (storport) IrqlDispatch (storport) 、IrqlDispatch (storport) 、 IrqlDispatch (wdm) SpNoWait (storport) StorPortStartIo (storport)

另请参阅

ControllerControl

IoCreateController

IoDeleteController

IoFreeController