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) |