// wdm.h
typedef enum _IO_ALLOCATION_ACTION {
KeepObject,
DeallocateObject,
DeallocateObjectKeepRegisters
} IO_ALLOCATION_ACTION, *PIO_ALLOCATION_ACTION;
View the official Windows Driver Kit DDI referenceNo description available.
The IO_ALLOCATION_ACTION enumerated type is used to specify return values for AdapterControl and ControllerControl routines.
KeepObjectIndicates that you want the driver to retain ownership of the adapter or controller object.
DeallocateObjectIndicates that you do not want the driver to retain ownership of the adapter or controller object.
DeallocateObjectKeepRegistersFor adapter objects only. Indicates that you do not want the driver to retain ownership of the adapter object, but you do want the driver to retain ownership of the allocated map registers.
If an AdapterControl or ControllerControl routine completes an IRP, or if it can set up an operation (such as a disk seek) for a target device object that could be overlapped with an operation for another device object, it should return DeallocateObject.
If a driver uses packet-based bus-master DMA, its AdapterControl routine should return DeallocateObjectKeepRegisters.
Otherwise, the driver should return KeepObject.