Ich weiß, dass dies eine alte Frage ist, aber ich hatte das gleiche Problem, also dachte ich, ich könnte antworten.
RtlCopyMemory in kernel32.dll sollte ein Weiter exportieren in ntdll, aber irgendwie Jungs bei MS Das habe ich verpasst auf der x64-Version von Vista (ich weiß nicht, wie es auf x86 ist) (siehe unten).
Sie können versuchen, es direkt aus ntdll zu importieren, wenn es nur für Ihre Bedürfnisse ist.
EDIT: die Methode, die ich meine, wird nicht exportiert, aber mit Symbols ist sie in ntdll sichtbar als RtlCopyMemoryNonTemporal
EDIT2: Nur um sicherzugehen, dass ich einige Dinge überprüft habe, hier die Zusammenfassung:
- sowohl RtlCopyMemory als auch RtlCopyMemoryNonTemporal werden von ntdll.dll in x64-Vista exportiert (einfach, SP1, SP2)
- es gibt eine Exportweiterleitung für RtlCopyMemory in kernel32.dll in x64 Vista's
- Es gibt nicht exportiert RtlCopyMemoryNonTemporal in ntdll.dll in x86 Vistas
So sollte es sein, wenn Sie eine x64-Anwendung schreiben.
P.S. Ich war falsch über x64 vs x86, weil ich x86 app kompiliert wurde, und es auf x64 (WOW-Modus) ausgeführt, also verwendete sie die 32-Bit-Version von kernel32 und ntdll und nicht die x64-Version.