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 例程返回一个值,该值指示控制器是否仍分配给设备(DeallocateObjectKeepObject)。 如果它返回 KeepObject,驱动程序随后必须调用 IoFreeController 来释放控制器对象。

要求

   
最低受支持的客户端 从 Windows 2000 开始可用。
目标平台 通用
标头 ntddk.h (包括 Ntddk.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL DISPATCH_LEVEL
DDI 符合性规则 HwStorPortProhibitedDDIS (storport) IrqlDispatch (storport) 、IrqlDispatch (storport) 、 IrqlDispatch (wdm ) 、 SpNoWait (storport) StorPortStartIo (storport)

请参阅

ControllerControl

IoCreateController

IoDeleteController

IoFreeController