static void irp_complete(IRP* irp) { int pos; DEBUG_SVC("DeviceId %d FileId %d CompletionId %d", irp->device->id, irp->FileId, irp->CompletionId); pos = stream_get_pos(irp->output); stream_set_pos(irp->output, 12); stream_write_uint32(irp->output, irp->IoStatus); stream_set_pos(irp->output, pos); svc_plugin_send(irp->devman->plugin, irp->output); irp->output = NULL; irp_free(irp); }
static void irp_complete(IRP* irp) { int pos; rdpdrPlugin* rdpdr; rdpdr = (rdpdrPlugin*) irp->devman->plugin; pos = (int) Stream_GetPosition(irp->output); Stream_SetPosition(irp->output, RDPDR_DEVICE_IO_RESPONSE_LENGTH - 4); Stream_Write_UINT32(irp->output, irp->IoStatus); /* IoStatus (4 bytes) */ Stream_SetPosition(irp->output, pos); rdpdr_send(rdpdr, irp->output); irp->output = NULL; irp_free(irp); }