When I try to cancel an IRP with only 1 stack and without completion routine, works normally. But if this IRP has more than 1 stack and completion routine, applications that generate this irp are hanging.
if (stackcount = 1) {
Irp->IoStatus.Status = STATUS_ACCESS_DENIED; //OR STATUS_INSUFFICIENT_RESOURCE
Irp->IoStatus.Information = 0 ;
IoCompleteRequest (Irp, IO_NO_INCREMENT) ;
return STATUS_ACCESS_DENIED;
}
else{??? }
What happens in this case? any tips?
Thank you!
if (stackcount = 1) {
Irp->IoStatus.Status = STATUS_ACCESS_DENIED; //OR STATUS_INSUFFICIENT_RESOURCE
Irp->IoStatus.Information = 0 ;
IoCompleteRequest (Irp, IO_NO_INCREMENT) ;
return STATUS_ACCESS_DENIED;
}
else{??? }
What happens in this case? any tips?
Thank you!