Freigeben über


AllocateUserPhysicalPagesNuma-Funktion (memoryapi.h)

Weist physische Speicherseiten zu, die innerhalb eines AWE-Bereichs ( Address Windowing Extensions ) eines angegebenen Prozesses zugeordnet und nicht zugeordnet werden sollen, und gibt den NUMA-Knoten für den physischen Speicher an.

Syntax

BOOL AllocateUserPhysicalPagesNuma(
  [in]      HANDLE     hProcess,
  [in, out] PULONG_PTR NumberOfPages,
  [out]     PULONG_PTR PageArray,
  [in]      DWORD      nndPreferred
);

Parameter

[in] hProcess

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.

Vorsicht 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] nndPreferred

Der NUMA-Knoten, auf dem sich der physische Arbeitsspeicher befinden soll.

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 Seitenrahmennummern werden sequenziell im Speicher platziert, auf den der PageArray-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 die GetLastError-Funktion auf.

Hinweise

Die AllocateUserPhysicalPagesNuma-Funktion wird verwendet, um physischen Arbeitsspeicher innerhalb eines NUMA-Knotens 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.

Um eine Anwendung zu kompilieren, die diese Funktion verwendet, definieren Sie _WIN32_WINNT als 0x0600 oder höher.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile memoryapi.h (einschließlich Windows.h, Memoryapi.h)
Bibliothek onecore.lib
DLL Kernel32.dll

Siehe auch

Adressfenstererweiterungen

AllocateUserPhysicalPages

FreeUserPhysicalPages

Speicherverwaltungsfunktionen

NUMA-Unterstützung