1 /* 2 * videoagp.h 3 * 4 * Video miniport AGP interface 5 * 6 * This file is part of the w32api package. 7 * 8 * Contributors: 9 * Created by Casper S. Hornstrup <chorns (at) users.sourceforge.net> 10 * 11 * THIS SOFTWARE IS NOT COPYRIGHTED 12 * 13 * This source code is offered for use in the public domain. You may 14 * use, modify or distribute it freely. 15 * 16 * This code is distributed in the hope that it will be useful but 17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY 18 * DISCLAIMED. This includes but is not limited to warranties of 19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 20 * 21 */ 22 23 #pragma once 24 25 #define __VIDEOAGP_H__ 26 27 #ifdef __cplusplus 28 extern "C" { 29 #endif 30 31 #define VIDEO_AGP_RATE_1X 0x00000001 32 #define VIDEO_AGP_RATE_2X 0x00000002 33 #define VIDEO_AGP_RATE_4X 0x00000004 34 #define VIDEO_AGP_RATE_8X 0x00000008 35 36 typedef enum _VIDEO_PORT_CACHE_TYPE { 37 VpNonCached = 0, 38 VpWriteCombined, 39 VpCached 40 } VIDEO_PORT_CACHE_TYPE; 41 42 typedef BOOLEAN 43 (NTAPI *PAGP_COMMIT_PHYSICAL)( 44 IN PVOID HwDeviceExtension, 45 IN PVOID PhysicalReserveContext, 46 IN ULONG Pages, 47 IN ULONG Offset); 48 49 typedef PVOID 50 (NTAPI *PAGP_COMMIT_VIRTUAL)( 51 IN PVOID HwDeviceExtension, 52 IN PVOID VirtualReserveContext, 53 IN ULONG Pages, 54 IN ULONG Offset); 55 56 typedef VOID 57 (NTAPI *PAGP_FREE_PHYSICAL)( 58 IN PVOID HwDeviceExtension, 59 IN PVOID PhysicalReserveContext, 60 IN ULONG Pages, 61 IN ULONG Offset); 62 63 typedef VOID 64 (NTAPI *PAGP_FREE_VIRTUAL)( 65 IN PVOID HwDeviceExtension, 66 IN PVOID VirtualReserveContext, 67 IN ULONG Pages, 68 IN ULONG Offset); 69 70 typedef VOID 71 (NTAPI *PAGP_RELEASE_PHYSICAL)( 72 IN PVOID HwDeviceExtension, 73 IN PVOID PhysicalReserveContext); 74 75 typedef VOID 76 (NTAPI *PAGP_RELEASE_VIRTUAL)( 77 IN PVOID HwDeviceExtension, 78 IN PVOID VirtualReserveContext); 79 80 typedef PHYSICAL_ADDRESS 81 (NTAPI *PAGP_RESERVE_PHYSICAL)( 82 IN PVOID HwDeviceExtension, 83 IN ULONG Pages, 84 IN VIDEO_PORT_CACHE_TYPE Caching, 85 OUT PVOID *PhysicalReserveContext); 86 87 typedef PVOID 88 (NTAPI *PAGP_RESERVE_VIRTUAL)( 89 IN PVOID HwDeviceExtension, 90 IN HANDLE ProcessHandle, 91 IN PVOID PhysicalReserveContext, 92 OUT PVOID *VirtualReserveContext); 93 94 typedef BOOLEAN 95 (NTAPI *PAGP_SET_RATE)( 96 IN PVOID HwDeviceExtension, 97 IN ULONG AgpRate); 98 99 typedef struct _VIDEO_PORT_AGP_SERVICES { 100 PAGP_RESERVE_PHYSICAL AgpReservePhysical; 101 PAGP_RELEASE_PHYSICAL AgpReleasePhysical; 102 PAGP_COMMIT_PHYSICAL AgpCommitPhysical; 103 PAGP_FREE_PHYSICAL AgpFreePhysical; 104 PAGP_RESERVE_VIRTUAL AgpReserveVirtual; 105 PAGP_RELEASE_VIRTUAL AgpReleaseVirtual; 106 PAGP_COMMIT_VIRTUAL AgpCommitVirtual; 107 PAGP_FREE_VIRTUAL AgpFreeVirtual; 108 ULONGLONG AllocationLimit; 109 } VIDEO_PORT_AGP_SERVICES, *PVIDEO_PORT_AGP_SERVICES; 110 111 BOOLEAN 112 NTAPI 113 VideoPortGetAgpServices( 114 IN PVOID HwDeviceExtension, 115 IN PVIDEO_PORT_AGP_SERVICES AgpServices); 116 117 #ifdef __cplusplus 118 } 119 #endif 120