Как я могу сказать Windows, чтобы сохранить страницу и не удалять ее? - PullRequest
0 голосов
/ 30 августа 2011

Я хочу выделить кусок памяти в Windows и быть уверенным, что он не получит ошибок #GP или #PF.Что касается #GP, я как программист отвечаю за то, чтобы я не выходил за пределы.Тем не менее, ответственность за ОС лежит на #PF, поскольку она может выбирать, удалять или нет страницу.

Я полагаю, что если я буду часто использовать одну и ту же страницу, ОС будет достаточно умна, чтобы не выселять ее.Это.Однако, если я хочу выделить большой блок памяти, мне понадобится некоторое время, чтобы добраться до некоторых страниц, и я не хочу, чтобы ОС тем временем его вытеснила.

Естьесть ли способ сказать Windows , чтобы страница присутствовала так, чтобы я никогда не получал ошибку страницы?

Примечание: это похоже на вопрос Как я могускажите Linux сохранить страницу и не удалять ее? за исключением того, что это о Windows

1 Ответ

2 голосов
/ 30 августа 2011

Посмотрите на функцию VirtualLock :

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

На этой странице есть пример: Создание защитных страниц .

...