// ntddk.h
VOID IoAllocateController(
[in] PCONTROLLER_OBJECT ControllerObject,
[in] PDEVICE_OBJECT DeviceObject,
[in] PDRIVER_CONTROL ExecutionRoutine,
[in, optional] PVOID Context
);
View the official Windows Driver Kit DDI reference
No description available.
The IoAllocateController routine sets up the call to a driver-supplied ControllerControl routine as soon as the device controller, represented by the given controller object, is available to carry out an I/O operation for the target device, represented by the given device object.
ControllerObject
[in]Pointer to a driver-created controller object, usually representing a physical controller to be allocated for an I/O operation on an attached device.
DeviceObject
[in]Pointer to the device object, representing the target device of the current IRP.
ExecutionRoutine
[in]Pointer to the driver-supplied ControllerControl routine.
Context
[in, optional]Pointer to a driver-determined context, passed to the driver's ControllerControl routine when it is called.
This routine reserves exclusive access to the hardware controller for the specified device.
The ControllerControl routine returns a value indicating whether the controller remains allocated to the device, either DeallocateObject or KeepObject. If it returns KeepObject, the driver must subsequently call IoFreeController to release the controller object.