AllocateUserPhysicalPages2-Funktion (memoryapi.h)
Ordnet physische Speicherseiten zu, die innerhalb eines AWE-Bereichs (Address Windowing Extensions) eines angegebenen Prozesses mit erweiterten Parametern zugeordnet und nicht zugeordnet werden sollen.
Syntax
BOOL AllocateUserPhysicalPages2(
[in] HANDLE ObjectHandle,
[in,out] PULONG_PTR NumberOfPages,
[out] PULONG_PTR PageArray,
[in,out] PMEM_EXTENDED_PARAMETER ExtendedParameters,
[in] ULONG ExtendedParameterCount
);
Parameter
[in] ObjectHandle
Ein Handle für einen Prozess.
Die Funktion ordnet Arbeitsspeicher zu, der später innerhalb des virtuellen Adressraums dieses Prozesses zugeordnet werden kann. Das Handle muss über das zugriffsrecht PROCESS_VM_OPERATION verfügen. Weitere Informationen finden Sie unter Prozesssicherheit und Zugriffsrechte.
[in,out] NumberOfPages
Die Größe des zuzuordnenden physischen Speichers in Seiten.
Verwenden Sie die GetSystemInfo-Funktion , um die Seitengröße des Computers zu bestimmen. Bei der Ausgabe empfängt dieser Parameter die Anzahl der tatsächlich zugeordneten Seiten, die kleiner als die angeforderte Zahl sein kann.
[out] PageArray
Ein Zeiger auf ein Array zum Speichern der Seitenrahmennummern des zugeordneten Arbeitsspeichers.
Die Größe des zugeordneten Arrays sollte mindestens dem NumberOfPages-Mal der Größe des ULONG_PTR-Datentyps entspricht.
Versuchen Sie nicht, diesen Puffer zu ändern. Es enthält Betriebssystemdaten, und Beschädigungen können katastrophal sein. Die Informationen im Puffer sind für eine Anwendung nicht nützlich.
[in,out] ExtendedParameters
Zeiger auf ein Array von MEM_EXTENDED_PARAMETER Strukturen.
[in] ExtendedParameterCount
Die Anzahl der MEM_EXTENDED_PARAMETER im ExtendedParameters-Array .
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert TRUE.
Es können weniger Seiten als angefordert zugeordnet werden. Der Aufrufer muss den Wert des NumberOfPages-Parameters bei der Rückgabe überprüfen, um zu sehen, wie viele Seiten zugeordnet sind. Alle zugeordneten Seitenframenummern werden sequenziell im Speicher platziert, auf den der UserPfnArray-Parameter verweist.
Wenn die Funktion fehlschlägt, ist der Rückgabewert FALSE, und es werden keine Frames zugeordnet. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.
Hinweise
AllocateUserPhysicalPages2 ist identisch mit AllocateUserPhysicalPages , fügt jedoch die Parameter ExtendedParameters und ExtendedParameterCount hinzu.
Die AllocateUserPhysicalPages2-Funktion wird verwendet, um physischen Arbeitsspeicher zuzuweisen, der später innerhalb des virtuellen Adressraums des Prozesses zugeordnet werden kann. Die SeLockMemoryPrivilege-Berechtigung muss im Token des Aufrufers aktiviert sein, andernfalls schlägt die Funktion mit ERROR_PRIVILEGE_NOT_HELD fehl. Weitere Informationen finden Sie unter Berechtigungskonstanten.
Der von dieser Funktion zugeordnete Arbeitsspeicher muss physisch im System vorhanden sein. Nachdem der Arbeitsspeicher zugeordnet wurde, ist er gesperrt und für den Rest des virtuellen Speicherverwaltungssystems nicht mehr verfügbar.
Physische Seiten können nicht gleichzeitig an mehr als einer virtuellen Adresse zugeordnet werden.
Physische Seiten können sich an jeder physischen Adresse befinden. Sie sollten keine Annahmen über die Kontinuität der physischen Seiten treffen.
Anforderungen
Unterstützte Mindestversion (Client) | Windows 11, Build 20348 |
Unterstützte Mindestversion (Server) | Windows Server, Build 20348 |
Kopfzeile | memoryapi.h |
Bibliothek | onecore.lib |
DLL | kernelbase.dll |