Beispiel #1
0
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);
}
Beispiel #2
0
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);
}