Статус: Новичок
Группы: Участники
Зарегистрирован: 21.03.2013(UTC) Сообщений: 3  Сказал(а) «Спасибо»: 1 раз
|
Система Windows 7 SP1 (6.1.7601 Service Pack 1 Сборка 7601) Поведение одинаковое с CSP 3.6 R2 (3.6.6497) и R3 (3.6.7475) Проблема в том, что CPCInitMemoryLF не возвращает ошибки (res = S_OK), но в переменной MemoryArena лежит NULL. Подскажите, что я делаю не так. Вот код, на котором воспроизводится (код получения адреса CPCInitMemoryLF по-видимому правильный): Код:
CPC_LFMM_CONFIG LfmmConfig;
RtlFillMemory(&LfmmConfig, sizeof(LfmmConfig), 0);
LONG PoolSizes[16];
RtlFillMemory(&PoolSizes, sizeof(PoolSizes), 0);
const LONG MAX_CONTEXTS = 5;
PoolSizes[MP_PRIME_M] += 2*1024 * (MAX_CONTEXTS) + 1024*1024;
PoolSizes[MP_SEC_M] += 2*1024 * (MAX_CONTEXTS) + 1024*1024;
PoolSizes[MP_BIG] += 2*1024 * (MAX_CONTEXTS) + 1024*1024;
PoolSizes[MP_WORK] += 64*1024 * (MAX_CONTEXTS) + 5*1024*1024;
PoolSizes[MP_WORK_M] += 128*1024;
// PoolSizes[MP_BIG] = PoolSizes[MP_WORK] = 10000 * (250 + MAX_CONTEXTS);
// PoolSizes[MP_PRIME_M] = PoolSizes[MP_SEC_M] = 1024 * (400 + MAX_CONTEXTS);
// PoolSizes[MP_WORK_M] = 2 * PoolSizes [MP_PRIME_M];
LfmmConfig.PoolSizes = PoolSizes;
LfmmConfig.nPools = sizeof(PoolSizes)/sizeof(PoolSizes[0]);
LfmmConfig.nCPUs = 2;
LfmmConfig.fSMP = TRUE;
LfmmConfig.Size = 65536;
for (size_t i = 0; i < LfmmConfig.nPools; ++i)
LfmmConfig.Size += PoolSizes[i];
arenaBuffer = ExAllocatePoolWithTag(PagedPool, LfmmConfig.Size, POOL_TAG);;
if(!arenaBuffer)
{
DbgPrint(MODNAME "! Out of memory: size=%d\n", LfmmConfig.Size);
ntStatus = STATUS_INSUFFICIENT_RESOURCES;
return;
}
LfmmConfig.Buffer = arenaBuffer;
LPCPC_MEMORY_ARENA MemoryArena = NULL;
ULONG res = InitMemoryLF(&MemoryArena, &LfmmConfig);
if(res || MemoryArena)
{
DbgPrint(MODNAME "! InitMemoryLF(%d) failed: 0x%.8X\n", LfmmConfig.Size, res);
ntStatus = STATUS_UNSUCCESSFUL;
return;
}
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,399  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 719 раз в 623 постах
|
Очень странно, сравните свой код с примером в \CSP\KernelMode\ |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 21.03.2013(UTC) Сообщений: 3  Сказал(а) «Спасибо»: 1 раз
|
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,399  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 719 раз в 623 постах
|
|
|
 1 пользователь поблагодарил Максим Коллегин за этот пост.
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 21.03.2013(UTC) Сообщений: 3  Сказал(а) «Спасибо»: 1 раз
|
Да, пожалуй :) c if(res || !MemoryArena) заработало
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close