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

Weitere Informationen

AgpCommitPhysical

AgpCommitVirtual

AgpReleaseVirtual

AgpReservePhysical