PAGP_RESERVE_PHYSICAL callback function (videoagp.h)

The AgpReservePhysical function reserves a range of physical addresses on the system bus to which the AGP controller can respond.

Syntax

PAGP_RESERVE_PHYSICAL PagpReservePhysical;

PHYSICAL_ADDRESS PagpReservePhysical(
  [in]  IN PVOID HwDeviceExtension,
  [in]  IN ULONG Pages,
  [in]  IN VIDEO_PORT_CACHE_TYPE Caching,
  [out] OUT PVOID *PhysicalReserveContext
)
{...}

Parameters

[in] HwDeviceExtension

Pointer to the miniport driver's device extension.

[in] Pages

Specifies the number of pages that the video port driver should reserve.

[in] Caching

A VIDEO_PORT_CACHE_TYPE enumeration that specifies the type of caching that the system should use.

[out] PhysicalReserveContext

Specifies the location in which the video port driver writes a context handle that identifies the reserved physical address space.

Return value

AgpReservePhysical returns the base address of the reserved physical address range if successful; otherwise, it returns NULL.

Remarks

Video miniport drivers that run on Windows 2000 should always reserve a range whose size is a multiple of 64 kilobytes. Reserving a range that is not a multiple of 64 kilobytes can result in AgpReserveVirtual or AgpCommitVirtual returning an invalid virtual address.

On Windows XP and later, AgpReservePhysical automatically expands the requested range to a multiple of 64 kilobytes.

Upon successful return, the AGP controller can respond to the reserved physical address range on the bus. However, the video miniport driver must first call AgpCommitPhysical to cause this memory to be committed before accessing it in order for the accessed results to be defined.

The miniport driver can call AgpReservePhysical several times to reserve many smaller address ranges rather than one big range.

The miniport driver should call AgpReleasePhysical to release the physical address range when it is no longer needed.

Requirements

Requirement Value
Minimum supported client Windows 2000
Target Platform Desktop
Header videoagp.h (include Video.h)
IRQL PASSIVE_LEVEL

See also

AgpCommitPhysical

AgpReleasePhysical

AgpReserveVirtual