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) |
| 库 | NtosKrnl.lib |
| DLL | NtosKrnl.exe |
| IRQL | DISPATCH_LEVEL |
| DDI 符合性规则 | HwStorPortProhibitedDIS(storport)、IrqlDispatch(storport)、IrqlDispatch(storport)、IrqlDispatch(wdm)、SpNoWait(storport)、StorPortStartIo(storport) |