Могу ли я VirtualAlloc записывать «мусорный» диапазон мусора? - PullRequest
1 голос
/ 07 октября 2019

Возможно ли в Win32 получить доступный для записи (или только для записи) диапазон «мусорного» виртуального адресного пространства (, т. Е. , через VirtualAlloc, VirtualAlloc2, VirtualAllocEx или другие), которые никогда не должны сохраняться, и, таким образом, в идеале никогда не поддерживаются физической памятью или файлом подкачки?

Сценарий предназначен для имитации пробного запуска последовательной операции записи в память только для того, чтобы получить размер, который он фактически потребляет. Вы сможете использовать точно такой же код, который использовался для фактической записи, но вместо этого передать необоснованный «мусорный» диапазон адресов, который по существу игнорирует или отбрасывает все, что ему написано. В этом примере размер диапазона адресов «void» будет некоторым известным максимальным значением для операции, и все, что вас интересует, это конечное значение опережающего указателя.

1 Ответ

1 голос
/ 07 октября 2019

Это невозможно. Если у вас есть код, который пытается записать в память, виртуальная память должна быть чем-то поддержана.

Однако, если вы изменили свой код для использования шаблона потока, вы могли бы предоставить реализацию потока, которая игнорировала бы записьи просто отследил размер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...