PAGP_RESERVE_VIRTUAL Rückruffunktion (videoagp.h)
Die Funktion AgpReserveVirtual reserviert einen Bereich virtueller Adressen für AGP.
Syntax
PAGP_RESERVE_VIRTUAL PagpReserveVirtual;
PVOID PagpReserveVirtual(
[in] IN PVOID HwDeviceExtension,
[in] IN HANDLE ProcessHandle,
[in] IN PVOID PhysicalReserveContext,
[out] OUT PVOID *VirtualReserveContext
)
{...}
Parameter
[in] HwDeviceExtension
Zeiger auf die Geräteerweiterung des Miniporttreibers.
[in] ProcessHandle
Handle des Prozesses, in dem der virtuelle Adressbereich reserviert werden soll. Wenn ProcessHandle den Wert 0 aufweist, wird der virtuelle Adressbereich im Systembereich zugeordnet.
[in] PhysicalReserveContext
Das Kontexthandle, das den reservierten physischen Adressbereich identifiziert, dem die Reservierung des virtuellen Speichers zugeordnet werden soll. Dieser Kontext wurde von AgpReservePhysical abgerufen.
[out] VirtualReserveContext
Der Speicherort, an dem der Videoporttreiber ein Kontexthandle schreibt, das den reservierten virtuellen Speicher identifiziert.
Rückgabewert
AgpReserveVirtual gibt bei erfolgreicher Ausführung die Basisadresse des reservierten virtuellen Adressbereichs zurück. Gibt andernfalls NULL zurück.
Hinweise
Wenn ProcessHandle nicht 0 ist, reserviert AgpReserveVirtual einen Bereich virtueller Adressen im Adressraum eines Benutzermodusprozesses, übernimmt jedoch keinen Commit. In diesem Fall müssen Sie AgpCommitVirtual aufrufen, um die reservierten virtuellen Adressen (Benutzermodus) physischen Adressen zuzuordnen.
Wenn ProcessHandle den Wert 0 aufweist, ordnet AgpReserveVirtual einen Bereich von virtuellen Adressen im Systembereich zu und ordnet den gesamten Bereich virtueller Adressen automatisch physischen Adressen zu (Commits). Obwohl AgpReserveVirtual den gesamten virtuellen Bereich committet, müssen Sie trotzdem AgpCommitVirtual aufrufen, bevor code auf den virtuellen Bereich zugreift.
Wenn Sie AgpReserveVirtual aufrufen, um einen Bereich virtueller Adressen im Systembereich zuzuordnen (d. h. wenn Sie ProcessHandle auf 0 festlegen), muss der gesamte Bereich physischer Adressen, der von PhysicalReserveContext identifiziert wird, durch einen vorherigen Aufruf von AgpCommitPhysical auf gesperrte Seiten des physischen Speichers committet werden.
Der Miniporttreiber kann AgpReleaseVirtual mehrmals aufrufen, um viele kleinere Adressbereiche anstelle eines großen Bereichs zu reservieren.
Der Miniporttreiber sollte AgpReleaseVirtual aufrufen, um den reservierten virtuellen Adressbereich freizugeben, wenn er nicht mehr benötigt wird.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar in Windows 2000 und höheren Versionen der Windows-Betriebssysteme. |
Zielplattform | Desktop |
Kopfzeile | videoagp.h (video.h einschließen) |
IRQL | PASSIVE_LEVEL |