Hi,
I am telling the I/O manager to build an IRP using IoBuildDeviceIoControlRequest() for IOCTL_INTERNAL_GET_PARALLEL_PORT_INFO. Now I wonder how long I can access the IO_STATUS_BLOCK which can be accessed through the respective IRP member.
On one hand the documentation states “IRPs that are created by IoBuildDeviceIoControlRequest must be completed by some driver’s call to IoCompleteRequest.” on the other hand “A driver that calls IoBuildDeviceIoControlRequest must not call IoFreeIrp, because the I/O manager frees these synchronous IRPs after IoCompleteRequest has been called.”
I am not calling IoCompleteRequest() for the IRP currently, do I have to? Once the IRP was completed it says it is being freed, so how do I access the IO_STATUS_BLOCK? Is this still safe? Currently I am doing it without any problems, but I have my doubts whether this is “politically correct”
Thanks for any help,
Oliver
May the source be with you, stranger
ICQ: #281645
URL: http://assarbad.net