ВУЗ:
Составители:
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
- …
- следующая ›
- последняя »