Составители:
lpAddress - стартовый адрес захватываемого или резервируемого блока. При
резервировании блока, указанный адрес выравнивается на 64-килобайтную
границу. Если распределяется память из прежде уже зарезервированного диапазона
адресов, проводится выравнивание на границу страницы памяти. Если значение
параметра NULL, адрес начала блока определяется ОС.
dwSize - размер блока в байтах. Реально выделяется память под целое число
страниц
. Если значение параметра lpAddress равно NULL, то dwSize плюс все байты
до следующей страницы. Иначе, все страницы, содержащие адреса от lpAddress до
(lpAddress+dwSize). Т.е. если, например, захватываем блок размером в страницу, но
сос стартовым адресом смещенным от границы страницы на два байта, то реально
будут захвачены две страницы.
flAllocationType
- тип распределения. Могут указываться следующие флаги (или их
комбинации):
Флаг Значение
MEM_COMMIT
Захватывает нужное число страниц в физической памяти или в
файле подкачки. Попытка захватить уже захваченную прежде
страницу не приводит к ошибке.
MEM_RESERVE
Резервирует указанный диапазон в адресном пространстве
процесса не проводя реального захвата (распределения)
физической памяти. Этот диапазон не
может использоваться
другими операциями распределения (функции LocalAlloc,
GlobalAlloc и т.п.) до тех пор, пока не будет захвачен
последующими вызовами VirtualAlloc.
MEM_RESET
только Windows NT: Указывает, что страницы памяти из
диапазона от lpAddress до lpAddress +dwSize не будут читаться
или записываться в файл подкачки. Фдаг MEM_RESET
декларирует, что соделжимое страниц более не существенно и ОС
может перезаписывать их
содержимое.
MEM_TOP_DOWN Распределяет память по наибольшим доступным адресам.
flProtect - указывает тип защиты доступа к блоку. Если память захватывается,
могут быть указаны следующие флаги (если нужно, то совместно с флагами
PAGE_GUARD и PAGE_NOCACHE):
Флаг Значение
PAGE_READONLY
Доступ к распределенным страницам только для
чтения. Генерируется исключение "запрет доступа"
при попытке записи или выполнения страниц блока
.
PAGE_READWRITE Доступ на чтение и запись.
PAGE_EXECUTE
Разрешает доступ на запуск из адресов,
принадлежащих страницам блока. Попытка чтения
или записи в страницы блока приводит к
исключению "запрет доступа".
PAGE_EXECUTE_READ
Позволяет использовать страницы только для
запуска и чтения.
PAGE_EXECUTE_READWRITE
Позволяет запускать, читать и записывать в
страницы блока.
PAGE_GUARD Попытка записи или чтения для таких
страниц
lpAddress - стартовый адрес захватываемого или резервируемого блока. При резервировании блока, указанный адрес выравнивается на 64-килобайтную границу. Если распределяется память из прежде уже зарезервированного диапазона адресов, проводится выравнивание на границу страницы памяти. Если значение параметра NULL, адрес начала блока определяется ОС. dwSize - размер блока в байтах. Реально выделяется память под целое число страниц. Если значение параметра lpAddress равно NULL, то dwSize плюс все байты до следующей страницы. Иначе, все страницы, содержащие адреса от lpAddress до (lpAddress+dwSize). Т.е. если, например, захватываем блок размером в страницу, но сос стартовым адресом смещенным от границы страницы на два байта, то реально будут захвачены две страницы. flAllocationType - тип распределения. Могут указываться следующие флаги (или их комбинации): Флаг Значение Захватывает нужное число страниц в физической памяти или в MEM_COMMIT файле подкачки. Попытка захватить уже захваченную прежде страницу не приводит к ошибке. Резервирует указанный диапазон в адресном пространстве процесса не проводя реального захвата (распределения) физической памяти. Этот диапазон не может использоваться MEM_RESERVE другими операциями распределения (функции LocalAlloc, GlobalAlloc и т.п.) до тех пор, пока не будет захвачен последующими вызовами VirtualAlloc. только Windows NT: Указывает, что страницы памяти из диапазона от lpAddress до lpAddress +dwSize не будут читаться MEM_RESET или записываться в файл подкачки. Фдаг MEM_RESET декларирует, что соделжимое страниц более не существенно и ОС может перезаписывать их содержимое. MEM_TOP_DOWN Распределяет память по наибольшим доступным адресам. flProtect - указывает тип защиты доступа к блоку. Если память захватывается, могут быть указаны следующие флаги (если нужно, то совместно с флагами PAGE_GUARD и PAGE_NOCACHE): Флаг Значение Доступ к распределенным страницам только для PAGE_READONLY чтения. Генерируется исключение "запрет доступа" при попытке записи или выполнения страниц блока. PAGE_READWRITE Доступ на чтение и запись. Разрешает доступ на запуск из адресов, принадлежащих страницам блока. Попытка чтения PAGE_EXECUTE или записи в страницы блока приводит к исключению "запрет доступа". Позволяет использовать страницы только для PAGE_EXECUTE_READ запуска и чтения. Позволяет запускать, читать и записывать в PAGE_EXECUTE_READWRITE страницы блока. PAGE_GUARD Попытка записи или чтения для таких страниц
Страницы
- « первая
- ‹ предыдущая
- …
- 12
- 13
- 14
- 15
- 16
- …
- следующая ›
- последняя »