ВУЗ:
Составители:
108
… Получить указатель на данные пользователя в системном контексте
CurrentAddress = MmGetSystemAddressForMdl( Irp->MdlAddress
);
Irp->IoStatus.Information = irpSp->Parameters.Read.Length;
switch (irpSp->MajorFunction)
{
case IRP_MJ_READ:
… Чтение
RtlMoveMemory(
CurrentAddress,
diskExtension->DiskImage + irpSp-
>Parameters.Read.ByteOffset.LowPart,
irpSp->Parameters.Read.Length);
break;
case IRP_MJ_DEVICE_CONTROL:
… Проверка. Всегда все в порядке
break;
case IRP_MJ_WRITE:
… Запись
RtlMoveMemory(
diskExtension->DiskImage + irpSp-
>Parameters.Read.ByteOffset.LowPart,
CurrentAddress, irpSp->Parameters.Read.Length);
break;
default:
… Что-то не поддерживаемое
Irp->IoStatus.Information = 0;
break;
}
Irp->IoStatus.Status = STATUS_SUCCESS;
IoCompleteRequest( Irp, IO_NO_INCREMENT );
return STATUS_SUCCESS;
}
VOID
RamDiskUnloadDriver(
IN PDRIVER_OBJECT DriverObject
)
Эта процедура вызывается системой для выгрузки драйвера.
Требуется освободить все занятые ресурсы
Аргументы:
… Получить указатель на данные пользователя в системном контексте
CurrentAddress = MmGetSystemAddressForMdl( Irp->MdlAddress
);
Irp->IoStatus.Information = irpSp->Parameters.Read.Length;
switch (irpSp->MajorFunction)
{
case IRP_MJ_READ:
… Чтение
RtlMoveMemory(
CurrentAddress,
diskExtension->DiskImage + irpSp-
>Parameters.Read.ByteOffset.LowPart,
irpSp->Parameters.Read.Length);
break;
case IRP_MJ_DEVICE_CONTROL:
… Проверка. Всегда все в порядке
break;
case IRP_MJ_WRITE:
… Запись
RtlMoveMemory(
diskExtension->DiskImage + irpSp-
>Parameters.Read.ByteOffset.LowPart,
CurrentAddress, irpSp->Parameters.Read.Length);
break;
default:
… Что-то не поддерживаемое
Irp->IoStatus.Information = 0;
break;
}
Irp->IoStatus.Status = STATUS_SUCCESS;
IoCompleteRequest( Irp, IO_NO_INCREMENT );
return STATUS_SUCCESS;
}
VOID
RamDiskUnloadDriver(
IN PDRIVER_OBJECT DriverObject
)
Эта процедура вызывается системой для выгрузки драйвера.
Требуется освободить все занятые ресурсы
Аргументы:
108
Страницы
- « первая
- ‹ предыдущая
- …
- 106
- 107
- 108
- 109
- 110
- …
- следующая ›
- последняя »
