Вот пример, демонстрирующий использование

Вот пример, демонстрирующий использование

Создание эффективных Win32-приложений - ДЖ. Рихтер

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

Вот пример, демонстрирующий использование AWE:

// сначала резервируем для адресного окна регион размером 1 Мб ULONG_PTR ulRAMBytes = 1024 * 1024

PVOID pvWindow = VirtualAlloc(NULL, ulRAMBytes, MEM_RESERVE | MEM_PHYSICAL, PAGE_READWRITE); // получаем размер страниц на данной процессорной платформе SYSTEM_INFO sinf;

GetSystemInfo(&sinf);

// вычисляем, сколько страниц памяти нужно для нашего количества байтов ULONG_PTR ulRAMPages = (ulRAMBytes + sinf.dwPageSize - 1) / sinf.dwPageSize;

// создаем соответствующий массив для номеров фреймов страниц ULONG_PTR aRAMPages[ulRAMPages];

// выделяем страницы оперативной памяти (в полномочиях пользователя // должна быть разрешена блокировка страниц в памяти)

AllocateUserPhysicalPages(

GetCurrentProcess(), // выделяем память для нашего процесса &ulRAMPages,    //на входе: количество запрошенных страниц RAM,

// на выходе: количество выделенных страниц RAM

аПДМРадез);     // на выходе: специфический массив,

// идентифицирующий выделенные страницы

// назначаем страницы оперативной памяти нашему окну МаризегРЬузТсаТРадеэ^уМТпс^, //               адрес адресного окна

и^АМРадеэ,            //  число элементов в массиве

аПДМРадез);           //  массив страниц ПАМ

// обращаемся к этим страницам через виртуальный адрес руИ1пСош

// освобождаем блок страниц оперативной памяти FreeUserPhysicalPages(

GetCurrentProcess(), // освобождаем RAM, выделенную нашему процессу &ulRAMPages,                  //на входе: количество страниц RAM,

//на выходе: количество освобожденных страниц RAM aRAMPages);                  //на входе: массив, идентифицирующий освобождаемые

Новости

все
25.07.2012
Главный инспектор аэрокосмического агентства США, НАСА, сообщил о расследовании скандального
24.07.2012
Анонсированы Leica M9 и X1: карманный FF и APS-C с фиксом Для тех, кто не желает таскать с
23.07.2012
Скоро беспроводная сеть позволит посмотреть сквозь стену? Видеть сквозь препятствия –

Дизайны

Разработали структуру сайта, создали сайт, соответствующий всем требованиям заказчика. Создали
Разработали структуру сайта, создали сайт по новым технологиям. Создали индивидуальный и
ООО Транспортная Компания «ТрансРусь» предлагает Вам свои услуги по приемке и