Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*************************************************************************
* * video.c * * This module contains routines for managing the ICA video channel. * * Copyright 1998, Microsoft. * *************************************************************************/
/*
* Includes */ #include <precomp.h>
#pragma hdrstop
NTSTATUS IcaDeviceControlVideo( IN PICA_CHANNEL pChannel, IN PIRP Irp, IN PIO_STACK_LOCATION IrpSp )
/*++
Routine Description:
This is the DeviceControl routine for the ICA video channel.
Arguments:
pChannel -- pointer to ICA_CHANNEL object
Irp - Pointer to I/O request packet
IrpSp - pointer to the stack location to use for this request.
Return Value:
NTSTATUS -- Indicates whether the request was successfully queued.
--*/
{ SD_IOCTL SdIoctl; NTSTATUS Status; CLONG Method;
// Verify the buffer method.
Method = IrpSp->Parameters.DeviceIoControl.IoControlCode & 0x03; ASSERT( Method == METHOD_BUFFERED );
if ( Method != METHOD_BUFFERED ) { Status = STATUS_INVALID_DEVICE_REQUEST; } else { SdIoctl.BytesReturned = 0; SdIoctl.IoControlCode = IrpSp->Parameters.DeviceIoControl.IoControlCode; SdIoctl.InputBuffer = Irp->AssociatedIrp.SystemBuffer; SdIoctl.InputBufferLength = IrpSp->Parameters.DeviceIoControl.InputBufferLength; SdIoctl.OutputBuffer = Irp->AssociatedIrp.SystemBuffer; SdIoctl.OutputBufferLength = IrpSp->Parameters.DeviceIoControl.OutputBufferLength;
Status = IcaCallDriver( pChannel, SD$IOCTL, &SdIoctl );
Irp->IoStatus.Information = SdIoctl.BytesReturned; }
return( Status ); }
|