Condividi tramite


PAGP_COMMIT_VIRTUAL funzione di callback (videoagp.h)

La funzione AgpCommitVirtual esegue il mapping della memoria virtuale riservata a un intervallo associato di indirizzi fisici decodificabili AGP.

Sintassi

PAGP_COMMIT_VIRTUAL PagpCommitVirtual;

PVOID PagpCommitVirtual(
  [in] IN PVOID HwDeviceExtension,
  [in] IN PVOID VirtualReserveContext,
  [in] IN ULONG Pages,
  [in] IN ULONG Offset
)
{...}

Parametri

[in] HwDeviceExtension

Puntatore all'estensione del dispositivo del driver miniport".

[in] VirtualReserveContext

Identifica un intervallo di indirizzi virtuali riservato. L'handle di contesto è stato ottenuto da AgpReserveVirtual.

[in] Pages

Specifica il numero di pagine di memoria virtuale di cui eseguire il mapping.

[in] Offset

Specifica l'offset di pagina in corrispondenza del quale eseguire il commit delle pagine. L'offset viene applicato all'intervallo di indirizzi virtuali riservato identificato da VirtualReserveContext.

Valore restituito

AgpCommitVirtual restituisce l'indirizzo virtuale per la base delle pagine di cui è stato eseguito il commit se il mapping è riuscito; in caso contrario restituisce NULL.

Commenti

Prima di chiamare AgpCommitVirtual per eseguire il commit di un intervallo di pagine virtuali, è necessario eseguire le operazioni seguenti:

  • Chiamare AgpReservePhysical per riservare un intervallo di indirizzi fisici da usare per la GPU.
  • Chiamare AgpCommitPhysical per eseguire il mapping di una parte (o di tutti) degli indirizzi fisici riservati alle pagine bloccate nella memoria di sistema.
  • Chiamare AgpReserveVirtual per riservare un intervallo di indirizzi virtuali associati all'intervallo di indirizzi fisici riservati da AgpReservePhysical.
Al termine di questi elementi, è possibile chiamare AgpCommitVirtual per eseguire il mapping di una parte delle pagine virtuali riservate alle pagine già mappate e bloccate da AgpCommitPhysical. Non è necessario tentare di eseguire il mapping di una pagina di indirizzi virtuali se la pagina corrispondente degli indirizzi fisici non è già stata mappata.

I driver miniport video eseguiti in Microsoft Windows 2000 devono sempre eseguire il commit di un intervallo virtuale la cui dimensione è un multiplo di 64 kilobyte. Se si chiama AgpCommitVirtual per eseguire il commit di un intervallo virtuale che non è un multiplo di 64 kilobyte, può restituire un indirizzo virtuale non valido.

In Windows XP e versioni successive AgpCommitVirtual espande automaticamente l'intervallo di commit in modo che sia un multiplo di 64 kilobyte.

Quando un driver miniport chiama AgpCommitVirtual, viene eseguito il mapping di una parte dell'intervallo di indirizzi virtuali identificato da VirtualReserveContext agli indirizzi fisici. La parte mappata inizia le pagine Offset nell'intervallo di indirizzi virtuali identificato da VirtualReserveContext.

Requisiti

Requisito Valore
Client minimo supportato Disponibile in Windows 2000 e versioni successive dei sistemi operativi Windows.
Piattaforma di destinazione Desktop
Intestazione videoagp.h (include Video.h)
IRQL PASSIVE_LEVEL

Vedi anche

AgpFreeVirtual

AgpReservePhysical

AgpReserveVirtual