//========================================================================== // PRODUCT: RusRoute - MaaSoftware routing firewall software driver // (C) Copyright Moiseenko A.A., MaaSoftware, 2003-2008. All Rights Reserved. // http://www.maasoftware.ru http://www.maasoftware.com // http://www.rusroute.ru http://www.rusroute.com // support@maasoftware.ru //========================================================================== #include "Perm.h" #include "Temp.h" #include "my.h" NTSTATUS DispatchIoctl ( PDEVICE_OBJECT pDO, PIRP pIrp ) { //INT3; NDIS_STATUS Status = STATUS_SUCCESS; PIO_STACK_LOCATION pStack = IoGetCurrentIrpStackLocation ( pIrp ); _byte * pInBuffer = (_byte *)pIrp -> AssociatedIrp.SystemBuffer; _byte * pOutBuffer = pInBuffer; ULONG InputBufferLength = pStack -> Parameters.DeviceIoControl.InputBufferLength; ULONG OutputBufferLength = pStack -> Parameters.DeviceIoControl.OutputBufferLength; int Code = pStack -> Parameters.DeviceIoControl.IoControlCode; int SizeOutRet = 0; { //CMaaGetCheckIrql ChkIrql ("DispatchIoctl() inside"); Status = pdo->IOControl ( Code, pInBuffer, InputBufferLength, pOutBuffer, OutputBufferLength, &SizeOutRet ); } pIrp -> IoStatus.Status = Status; pIrp -> IoStatus.Information = SizeOutRet; // IoCompleteRequest ( pIrp, IO_NO_INCREMENT ); IoCompleteRequest(pIrp, IO_NETWORK_INCREMENT); return Status; }