Хайя, а вот и я опять, понадобилось протестить DMA контроллер (verilog),
возвращаясь к любимой тематике - пишу драйвер,
в общем траблы такие при ReadFile возвращается ошибка 0x87 (Invalid parameter)
Обработчик IRP_MJ_READ не вызывается.....
блин, так не охота переносить на IOCTL...
в общем думаю либо секьюрити, либо инициализация
Последовательность инициализации такая (Adddevice), почитал man, переставил сброс флага инициалиизации, установки флага небуферизируемого Io - не помогло
наверняка кто-то уже наступал на грабли.....последовательность инициализации такая (урезаная)
Status = IoCreateDevice(DriverObject, sizeof(XWDM_DEVICE_EXT), &devName,
FILE_DEVICE_VFP, 0, FALSE, &deviceObject);
Status = IoCreateSymbolicLink(&linkName, &devName);
deviceObject->Flags |= DO_DIRECT_IO;
deviceObject->Flags &= ~DO_DEVICE_INITIALIZING;
devExt->DeviceObject = deviceObject;
devExt->Pdo = PhysicalDeviceObject;
devExt->DeviceToSendIrpsTo = IoAttachDeviceToDeviceStack(deviceObject, PhysicalDeviceObject);