Я знаю, что это старый вопрос, но у меня была та же проблема, поэтому я подумал, что смогу ответить.
RtlCopyMemory в kernel32.dll должен быть Экспорт вперед в ntdll,
но почему-то ребята из MS пропустили этот в 64-разрядной версии Vista (не знаю, как на x86) (см. ниже).
Вы можете попробовать импортировать его напрямую из ntdll, если это только для ваших нужд.
РЕДАКТИРОВАТЬ: метод, который я имею в виду, не экспортируется, но с символами он виден в ntdll как RtlCopyMemoryNonTemporal
РЕДАКТИРОВАТЬ 2: Просто чтобы убедиться, что я проверил некоторые вещи, вот резюме:
- RtlCopyMemory и RtlCopyMemoryNonTemporal экспортируются из ntdll.dll в Vista x64 (обычный, SP1, SP2)
- есть экспорт вперед для RtlCopyMemory в kernel32.dll в x64 Vista
- имеется не экспортировано RtlCopyMemoryNonTemporal в ntdll.dll в x86 Vista
Так и должно быть, если вы пишете приложение для x64.
P.S. Я ошибался насчет x64 против x86, потому что я компилировал приложение x86 и запускал его на x64 (режим WOW),
поэтому он использовал 32-битную версию kernel32, ntdll, а не x64.