API für non-paged memory (evtl. X-posting zu VB)

Hallo zusammen,

evtl. passt meine Frage in dieses Forum besser rein als mein Original-Artikel im VB-Forum (/t/non-paged-memory-mittels-vb6/4656296

Falls Artikel hier nicht gewünscht bitte sperren/löschen.

Was ich suche ist eine API-Funktion, die mir erlaubt unter WinXP einen Speicherbereich als non-paged memory zu deklarieren. Was ich damit erreichen will ist, dass ich von einer eigenen Hardware selbständig auf den Speicherbereich des Prozessors schreiben kann und dieser dann nur mehr diese übertragenen Daten per MemCopy weiterverarbeitet.
Was ich damit unterm Strich erreichen will ist eine DMA-Übertragung wobei die Hardware und nicht der Prozessor der Master ist.

Der umgekehrte Fall (Prozessor schreibt auf Hardware) funktioniert recht schön. Ich habe die APIs MemCopy (RTLmoveMemory) und VarPtr verwendet und damit die Daten vom PC zur Hardware verschoben:

MemCopy(VarPtr(Hardware),VarPtr(PC-Daten), Datenlänge);
==> führt ein Schreiben zur Hardware aus

Auch folgendes funktioniert:
MemCopy(VarPtr(PC-Daten),VarPtr(Hardware), Datenlänge);
==> Prozessor liest von der Hardware, hat aber weniger Datendurchsatz als wenn die Hardware schreiben würde.

Meine bisherigen Versuche sind alle darauf hinausgelaufen, dass ich auf dem Prozessor eine Variable deklariert habe und deren Adresse an die Hardware übergeben habe. Dort habe ich dann auf diese Adresse geschrieben und danach am PC ausgelesen. Leider blieb diese Variable aber unverändert, wahrscheinlich deswegen, weil sie im Cache liegt und der Prozessor nichts von der Veränderung mitbekommt.

Falls jemand dazu nützliche Hinweise hat schon mal vielen Dank im voraus.

Martin