IopExceptionCleanup
VOID __stdcall IopExceptionCleanup(PVOID FileObject, PIRP Irp, PVOID EventObject, PVOID KernelEvent){
void *MasterIrp;
_MDL *MdlAddress;
MasterIrp = Irp->AssociatedIrp.MasterIrp;
if( MasterIrp )
ExFreePoolWithTag(MasterIrp, 0);
MdlAddress = Irp->MdlAddress;
if( MdlAddress )
IoFreeMdl(MdlAddress);
IoFreeIrp(Irp);
if( (*((_DWORD *)FileObject + 20) & 2) != 0 )
IopReleaseFileObjectLock((PADAPTER_OBJECT)FileObject);
if( EventObject )
HalPutDmaAdapter((PADAPTER_OBJECT)EventObject);
if( KernelEvent )
ExFreePoolWithTag(KernelEvent, 0);
HalPutDmaAdapter((PADAPTER_OBJECT)FileObject);
}Referenced by:
IopXxxControlFile
NtSetVolumeInformationFile