[an error occurred while processing this directive]
Вот кусок кода из программулины:
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено MadMan 22 июля 2004 г. 15:34
В ответ на: Вернее, так - причина отправлено GRD 22 июля 2004 г. 15:21

Функции AWE, на самом деле не понятно насколько они нужны в данном случае, но вроде как физическая non-paged память выделяется...


if( !OpenProcessToken( GetCurrentProcess()
, TOKEN_ADJUST_PRIVILEGES
, &tokenHandle ) )
...
tokenPrivileges.PrivilegeCount = 1;
LookupPrivilegeValue( NULL, SE_LOCK_MEMORY_NAME, &tokenPrivileges.Privileges[0].Luid );
tokenPrivileges.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
if( !AdjustTokenPrivileges( tokenHandle
, FALSE
, &tokenPrivileges
, NULL, NULL, NULL ) )
...

kernelDllHandle = LoadLibrary( "kernel32.dll" );
if( kernelDllHandle == NULL )
...
MapUserPhysicalPages = (TMapUserPhysicalPages)GetProcAddress( kernelDllHandle, "MapUserPhysicalPages" );
if( !MapUserPhysicalPages )
...
AllocateUserPhysicalPages = (TAllocateUserPhysicalPages)GetProcAddress( kernelDllHandle, "AllocateUserPhysicalPages" );
...

if( !AllocateUserPhysicalPages( GetCurrentProcess(), &numOfPages, physAddr ) )
...
if( numOfPages != reqNumOfPages )
...
dmaBuffer = VirtualAlloc( NULL, memorySize, MEM_PHYSICAL | MEM_RESERVE, PAGE_READWRITE );
if( !dmaBuffer )
...
if( !MapUserPhysicalPages( dmaBuffer, numOfPages, physAddr ) )
...


driver = CreateFile( driverFileName, GENERIC_READ | GENERIC_WRITE
, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
if( driver == INVALID_HANDLE_VALUE )
...
while( 1 )
{
nBytes = DATA_BUF+DATA_DIGIT;
if( !ReadFile( driver, dmaBuffer, nBytes, &nBytes, NULL ) )
...
}


Или просто какова схема работы?

И еще, вызвать ExAllocatePool вместо AllocateUserPhysicalMemory в программе не удалось, падает без объяснений...

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru