Member 14130865 Ответов: 0

Проблема 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

0 Ответов