Grave_Digger
Гость
|
 |
« : 13-04-2004 14:33 »  |
|
Народ, поделитесь опытом... пишу драйвер для PCI под W2000 использую DriverStudio3. Возникла проблема с чтением данных из памяти. Использую метод METHOD_OUT_DIRECT для записи в память и METHOD_IN_DIRECT для чтения. Запись.. wr_data pBuffer_in=*(wr_data*)I.IoctlBuffer(); // структура (передается из апликухи) ULONG ad = pBuffer_in.address_ ; ULONG ch = pBuffer_in.ch_; PULONG dt = pBuffer_in.data_ ; KMemoryRange m_Mem1; m_Mem1.outd(ad,dt,ch); пишет в память правильно.. Чтение rd_data pBuffer_r=*(rd_data*)I.IoctlBuffer(); // структура ULONG ad = pBuffer_r.address_ ; ULONG ch = pBuffer_r.ch_;
KMemory Mem(I.Mdl());
PULONG pBuffer = (PULONG) Mem.MapToSystemSpace(); KMemoryRange m_Mem1; m_Mem1.ind(ad,pBuffer,ch); начинаю смотреть содержимое pBuffer, а там полная фигня.... ну или изменены некоторые байты. Использую ДДК ХР, но компилирую для 2000, пробовал и ДДК2000, все тоже самое.
|