Проблема Mapviewoffile не может использовать его более одного раза?
void sendrequests() { auto Readstring = (char*)MapViewOfFile(hMapFileW, FILE_MAP_WRITE, 0, 0, 4096); RtlCopyMemory(Readstring, "Read", 4); printf("message has been sent to kernel [Read]! \n"); UnmapViewOfFile(Readstring) } ;
так что в принципе если я сделаю что то вроде этого
он работает нормально , но если я добавлю еще один mapviewoffile после этого вызова, он ничего не отправит моему драйверу, я сопоставляю раздел с zwmapviewofsection и циклически повторяю, пока не найду строку "Read", а затем, если она будет найдена, он выполнит какой-то код, но проблема в том, что я не могу отправить более 1 запроса с mapviewoffile, поэтому я действительно не знаю, в чем проблема с этой проблемой. любая помощь заранее очень ценится.
Что я уже пробовал:
<pre lang="c++">void sendrequests() { auto Readstring = (char*)MapViewOfFile(hMapFileW, FILE_MAP_WRITE, 0, 0, 4096); RtlCopyMemory(Readstring, "Read", 4); printf("message has been sent to kernel [Read]! \n"); UnmapViewOfFile(Readstring) auto Read_test = (char*)MapViewOfFile(hMapFileW, FILE_MAP_WRITE, 0, 0, 4096); RtlCopyMemory(Read_test , "Test", 4); printf("message has been sent to kernel [Read_test ]! \n"); UnmapViewOfFile(Read_test); // but it doesn't work for some reason } ;
11917640 Member
Вы пытаетесь использовать файл с отображением памяти только для отправки команд драйверу? Стандартный способ сделать это-DeviceIoControl.
Member 14130865
@11917640 член да, и я уже решил его . используя strlen, чтобы проверить размер моей строки перед отправкой :D