Возникает ситуация: память выделена с помощью ExAllocatePool из NonPagen пула, но выделена в контексте процесса System, но ссылается на эту память для чтения/записи в другом процессе. При тестировании driver verifier такого драйвера возникает ошибка DRIVER_PAGE_FAULT_IN_FREED_SPECIAL_POOL (d5) Memory was referenced after it was freed. This cannot be protected by try-except. Arguments: Arg1: 82308fdc, memory referenced Arg2: 00000000, value 0 = read operation, 1 = write operation Arg3: fb19f618, if non-zero, the address which referenced memory. Arg4: 00000000, (reserved) Т.е. вопрос состоит в том, неужели нельзя так делать? (память выделена с помощью ExAllocatePool из NonPagen пула, но выделена в контексте процесса System, но ссылается на эту память для чтения/записи в другом процессе)
системное адресное пространство одинаково для любого контекста, поэтому наверно так делать можно под системным адресным пространством я имел ввиду диапазон адресов от 2 до 4Гб
А разве смысл этого сообщения не в том, что идёт обращение к уже освобождённому куску памяти? Или он точно не освобождён и при этом вылезает такая ошибка?