/* * videoagp.h * * Video miniport AGP interface * * This file is part of the w32api package. * * Contributors: * Created by Casper S. Hornstrup <chorns@users.sourceforge.net> * * THIS SOFTWARE IS NOT COPYRIGHTED * * This source code is offered for use in the public domain. You may * use, modify or distribute it freely. * * This code is distributed in the hope that it will be useful but * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY * DISCLAIMED. This includes but is not limited to warranties of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * */ #pragma once #define __VIDEOAGP_H__ #ifdef __cplusplus extern "C" { #endif #define VIDEO_AGP_RATE_1X 0x00000001 #define VIDEO_AGP_RATE_2X 0x00000002 #define VIDEO_AGP_RATE_4X 0x00000004 #define VIDEO_AGP_RATE_8X 0x00000008 typedef enum _VIDEO_PORT_CACHE_TYPE { VpNonCached = 0, VpWriteCombined, VpCached } VIDEO_PORT_CACHE_TYPE; typedef BOOLEAN (NTAPI *PAGP_COMMIT_PHYSICAL)( IN PVOID HwDeviceExtension, IN PVOID PhysicalReserveContext, IN ULONG Pages, IN ULONG Offset); typedef PVOID (NTAPI *PAGP_COMMIT_VIRTUAL)( IN PVOID HwDeviceExtension, IN PVOID VirtualReserveContext, IN ULONG Pages, IN ULONG Offset); typedef VOID (NTAPI *PAGP_FREE_PHYSICAL)( IN PVOID HwDeviceExtension, IN PVOID PhysicalReserveContext, IN ULONG Pages, IN ULONG Offset); typedef VOID (NTAPI *PAGP_FREE_VIRTUAL)( IN PVOID HwDeviceExtension, IN PVOID VirtualReserveContext, IN ULONG Pages, IN ULONG Offset); typedef VOID (NTAPI *PAGP_RELEASE_PHYSICAL)( IN PVOID HwDeviceExtension, IN PVOID PhysicalReserveContext); typedef VOID (NTAPI *PAGP_RELEASE_VIRTUAL)( IN PVOID HwDeviceExtension, IN PVOID VirtualReserveContext); typedef PHYSICAL_ADDRESS (NTAPI *PAGP_RESERVE_PHYSICAL)( IN PVOID HwDeviceExtension, IN ULONG Pages, IN VIDEO_PORT_CACHE_TYPE Caching, OUT PVOID *PhysicalReserveContext); typedef PVOID (NTAPI *PAGP_RESERVE_VIRTUAL)( IN PVOID HwDeviceExtension, IN HANDLE ProcessHandle, IN PVOID PhysicalReserveContext, OUT PVOID *VirtualReserveContext); typedef BOOLEAN (NTAPI *PAGP_SET_RATE)( IN PVOID HwDeviceExtension, IN ULONG AgpRate); typedef struct _VIDEO_PORT_AGP_SERVICES { PAGP_RESERVE_PHYSICAL AgpReservePhysical; PAGP_RELEASE_PHYSICAL AgpReleasePhysical; PAGP_COMMIT_PHYSICAL AgpCommitPhysical; PAGP_FREE_PHYSICAL AgpFreePhysical; PAGP_RESERVE_VIRTUAL AgpReserveVirtual; PAGP_RELEASE_VIRTUAL AgpReleaseVirtual; PAGP_COMMIT_VIRTUAL AgpCommitVirtual; PAGP_FREE_VIRTUAL AgpFreeVirtual; ULONGLONG AllocationLimit; } VIDEO_PORT_AGP_SERVICES, *PVIDEO_PORT_AGP_SERVICES; BOOLEAN NTAPI VideoPortGetAgpServices( IN PVOID HwDeviceExtension, IN PVIDEO_PORT_AGP_SERVICES AgpServices); #ifdef __cplusplus } #endif