On 8/3/21 5:28 PM, Zebediah Figura (she/her) wrote:
On 8/3/21 3:19 AM, Rémi Bernon wrote:
@@ -584,15 +567,13 @@ NTSTATUS WINAPI pdo_ioctl(DEVICE_OBJECT *device, IRP *irp) FIXME("Unsupported ioctl %x (device=%x access=%x func=%x method=%x)\n", code, code >> 16, (code >> 14) & 3, (code >> 2) & 0xfff, code & 3); irp->IoStatus.Status = STATUS_NOT_SUPPORTED; - rc = STATUS_UNSUCCESSFUL; break; } } - if (rc != STATUS_PENDING) - IoCompleteRequest( irp, IO_NO_INCREMENT ); + if (irp->IoStatus.Status != STATUS_PENDING) IoCompleteRequest( irp, IO_NO_INCREMENT ); - return rc; + return irp->IoStatus.Status; } NTSTATUS WINAPI pdo_read(DEVICE_OBJECT *device, IRP *irp)
You can't access the IRP after calling IoCompleteRequest().
There are other instances in this patch of the same thing.
Ah thanks I wasn't aware of this, I think some previous patches introduced some as well. I'll fix these and resend the series.