| |
|
|
| VirtualAllocEx reserviert im privaten Speicherbereich eines (fremden) Prozesses Speicher oder weist virtuellen Speicher realem Speicher zu.
P:L1 Das Handle des Prozesses, das mit dem Zugriffsrecht PROCESS_VM_OPERATION ($8) zu öffnen ist. P:L2 Eine gewünschte Startadresse der Zuweisung. Wird hier 0 angegeben, nimmt Windows die nächstbeste Adresse. Ansonsten wird auf die nächstmögliche Adresse abgerundet. P:L3 Anzahl der zu reservierenden oder zuzuweisenden Bytes. Wird hier 0 angegeben, wird der gesammte Speicher bis zur nächsten Seite zugewiesen oder reserviert. Steht hier eine Zahl, wird der Speicher bis zum Ende der angefangenen Seite reserviert oder zugewiesen. P:L4 Hier kann angegeben werden, ob der Speicher reserviert oder zugewiesen werden soll. Folgende Flags sind possibile:
$1000 (MEM_COMMIT) | Der Virtuelle Speicher wird realem Speicher zugewiesen. Speicher, der vorher reserviert wurde, kann nicht zugewiesen werden. Um Speicher in einem Rutsch zuzuweisen und zu reservieren kann dieser Flag mit dem Flag $2000 (MEM_RESERVE) kombiniert werden.
| $2000 (MEM_RESERVE) | Virtueller Speicher wird reserviert, um ihn später realem Speicher zuzuweisen.
| $8000 (MEM_RESET) | Der Speicher wird momentan nicht gebraucht, bleibt aber zugewiesen. Parameter 5 muß einen gültigen Zugriffsflag enthalten, z.B. $1 (PAGE_NOACCESS). Der Speicherbereich darf nicht von einer gemappten File oder der Auslagerungsdatei belegt sein.
| $100000 (MEM_TOP_DOWN) | Speicher der höchstmöglichen virtuellen Adresse wird genommen. Dieser Flag kann mit den anderen Flags kombiniert werden.
| $400000 (MEM_PHYSICAL) | kann nur mit $2000 (MEM_RESERVE) kombiniert werden.
| $20000000 (MEM_LARGE_PAGES)
|
P:L5 Ein Flag, der die gewünschten Zugriffsrechte auf den Speicher angibt. Folgende Flags sind possibile:
$1 (PAGE_NOACCESS) | Alle Zugriffe verweigern
| $2 (PAGE_READONLY) | Nur lesen
| $4 (PAGE_READWRITE) | Lesen und schreiben
| $8 (PAGE_WRITECOPY) | Copy-on-write Zugriff
| $10 (PAGE_EXECUTE) | Ausführen
| $20 (PAGE_EXECUTE_READ) | Ausführen und lesen
| $40 (PAGE_EXECUTE_READWRITE) | Ausführen, lesen und schreiben
| $80 (PAGE_EXECUTE_WRITECOPY) | Ausführen, lesen und schreiben sowie read-on-write und copy-on-write
|
kombinierbar mit
$100 (PAGE_GUARD) | Der erste Zugriffsversuch wird verhindert, danach ist Zugriff possibile.
|
Diese Funktion gibt es nur unter NT-basierenden Windowssystemen.
|
|
|
| |
|
|