You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
148 lines
5.2 KiB
148 lines
5.2 KiB
/*^^*
|
|
* File: ATIGUIDS.H
|
|
*
|
|
* Purpose: Defines the GUIDS of ATI private interfaces exposed
|
|
* by the MiniVDD via GPIO Interface.
|
|
*
|
|
* Reference: Ilya Klebanov
|
|
*
|
|
* Notes: This file is provided under strict non-disclosure agreements
|
|
* it is and remains the property of ATI Technologies Inc.
|
|
* Any use of this file or the information it contains to
|
|
* develop products commercial or otherwise must be with the
|
|
* permission of ATI Technologies Inc.
|
|
*
|
|
* Copyright (C) December 1997, ATI Technologies Inc.
|
|
*
|
|
* Please, come to talk to Ilya before you're making any changes to thos file
|
|
*
|
|
*^^*/
|
|
|
|
#ifndef _ATIGUIDS_H_
|
|
#define _ATIGUIDS_H_
|
|
|
|
#include "atibios.h"
|
|
|
|
#ifndef DEVNODE
|
|
#define DEVNODE DWORD
|
|
#endif
|
|
|
|
/*
|
|
This interface is an entry point to all possible ATI Private interfaces
|
|
This GUID is reported back at GPIOOpen command via GPIO Microsoft defined
|
|
interface. Among this GUID there is a PVOID pointer exposed, which we'll
|
|
cast to the ATIQueryPrivateInterface function pointer as defined below.
|
|
The function should return pointer to the specific interface if supported,
|
|
or NULL based upon the GUID passed in.
|
|
*/
|
|
// {E3F5D200-6714-11d1-9065-00A02481E06C}
|
|
DEFINE_GUID( GUID_ATI_PRIVATE_INTERFACES_QueryInterface,
|
|
0xe3f5d200L, 0x6714, 0x11d1, 0x90, 0x65, 0x0, 0xa0, 0x24, 0x81, 0xe0, 0x6c);
|
|
|
|
typedef VOID ( STDMETHODCALLTYPE * ATI_QueryPrivateInterface)( PDEVICE_OBJECT, REFGUID, PVOID *);
|
|
typedef VOID ( STDMETHODCALLTYPE * ATI_QueryPrivateInterfaceOne)( DEVNODE, REFGUID, PVOID *);
|
|
|
|
|
|
/*
|
|
This Interface allows to client get MultiMedia related information from
|
|
the BIOS. Usual client is a WDM MiniDriver.
|
|
*/
|
|
// {AD5D6C00-673A-11d1-9065-00A02481E06C}
|
|
DEFINE_GUID( GUID_ATI_PRIVATE_INTERFACES_Configuration,
|
|
0xad5d6c00, 0x673a, 0x11d1, 0x90, 0x65, 0x0, 0xa0, 0x24, 0x81, 0xe0, 0x6c);
|
|
|
|
// {D24AB480-B4D5-11d1-9065-00A02481E06C}
|
|
DEFINE_GUID( GUID_ATI_PRIVATE_INTERFACES_Configuration_One,
|
|
0xd24ab480, 0xb4d5, 0x11d1, 0x90, 0x65, 0x0, 0xa0, 0x24, 0x81, 0xe0, 0x6c);
|
|
|
|
// {299D9CA0-69C3-11d2-BE4D-008029E75CEB}
|
|
DEFINE_GUID( GUID_ATI_PRIVATE_INTERFACES_Configuration_Two,
|
|
0x299d9ca0, 0x69c3, 0x11d2, 0xbe, 0x4d, 0x0, 0x80, 0x29, 0xe7, 0x5c, 0xeb);
|
|
|
|
// {58AEE200-FBBA-11d1-A419-00104B712355}
|
|
DEFINE_GUID( GUID_ATI_PRIVATE_INTERFACES_MPP,
|
|
0x58aee200, 0xfbba, 0x11d1, 0xa4, 0x19, 0x0, 0x10, 0x4b, 0x71, 0x23, 0x55);
|
|
|
|
// {7CF92CA0-06CE-11d2-A419-00104B712355}
|
|
DEFINE_GUID( GUID_ATI_PRIVATE_INTERFACES_StreamServices,
|
|
0x7cf92ca0, 0x6ce, 0x11d2, 0xa4, 0x19, 0x0, 0x10, 0x4b, 0x71, 0x23, 0x55);
|
|
|
|
// {038D2B00-D6DF-11d2-BE4D-008029E75CEB}
|
|
DEFINE_GUID( GUID_ATI_PRIVATE_INTERFACES_MVProtection,
|
|
0x38d2b00, 0xd6df, 0x11d2, 0xbe, 0x4d, 0x0, 0x80, 0x29, 0xe7, 0x5c, 0xeb);
|
|
|
|
|
|
typedef NTSTATUS ( STDMETHODCALLTYPE * GETCONFIGURATION_MULTIMEDIA) \
|
|
( PVOID, PUCHAR, PULONG pulSize);
|
|
typedef NTSTATUS ( STDMETHODCALLTYPE * GETCONFIGURATION_HARDWARE) \
|
|
( PVOID, PUCHAR, PULONG pulSize);
|
|
|
|
typedef struct
|
|
{
|
|
ATI_QueryPrivateInterface pfnQueryPrivateInterface;
|
|
GETCONFIGURATION_MULTIMEDIA pfnGetMultimediaConfiguration;
|
|
GETCONFIGURATION_HARDWARE pfnGetHardwareConfiguration;
|
|
|
|
} ATI_PRIVATE_INTERFACE_CONFIGURATION, * PATI_PRIVATE_INTERFACE_CONFIGURATION;
|
|
|
|
typedef struct
|
|
{
|
|
USHORT usSize;
|
|
USHORT nVersion;
|
|
PVOID pvContext;
|
|
PVOID pvInterfaceReference;
|
|
PVOID pvInterfaceDereference;
|
|
|
|
GETCONFIGURATION_MULTIMEDIA pfnGetMultimediaConfiguration;
|
|
GETCONFIGURATION_HARDWARE pfnGetHardwareConfiguration;
|
|
|
|
} ATI_PRIVATE_INTERFACE_CONFIGURATION_One, * PATI_PRIVATE_INTERFACE_CONFIGURATION_One;
|
|
|
|
|
|
// Definitions for ulTable
|
|
typedef enum
|
|
{
|
|
ATI_BIOS_CONFIGURATIONTABLE_MULTIMEDIA = 1,
|
|
ATI_BIOS_CONFIGURATIONTABLE_HARDWARE
|
|
|
|
} ATI_CONFIGURATION_TABLE;
|
|
|
|
typedef NTSTATUS ( STDMETHODCALLTYPE * GETCONFIGURATION_DATA) \
|
|
( PVOID pvContext, ULONG ulTable, PUCHAR puchData, PULONG pulSize);
|
|
typedef NTSTATUS ( STDMETHODCALLTYPE * GETCONFIGURATION_REVISION) \
|
|
( PVOID pvContext, ULONG ulTable, PULONG pulRevision);
|
|
|
|
typedef struct
|
|
{
|
|
USHORT usSize;
|
|
USHORT nVersion;
|
|
PVOID pvContext;
|
|
PVOID pvInterfaceReference;
|
|
PVOID pvInterfaceDereference;
|
|
|
|
GETCONFIGURATION_REVISION pfnGetConfigurationRevision;
|
|
GETCONFIGURATION_DATA pfnGetConfigurationData;
|
|
|
|
} ATI_PRIVATE_INTERFACE_CONFIGURATION_Two, * PATI_PRIVATE_INTERFACE_CONFIGURATION_Two;
|
|
|
|
|
|
typedef NTSTATUS ( STDMETHODCALLTYPE * MACROVISIONPROTECTION_SETLEVEL) \
|
|
( PVOID, ULONG ulProtectionLevel);
|
|
typedef NTSTATUS ( STDMETHODCALLTYPE * MACROVISIONPROTECTION_GETLEVEL) \
|
|
( PVOID, PULONG pulProtectionLevel);
|
|
|
|
typedef struct
|
|
{
|
|
USHORT usSize;
|
|
USHORT nVersion;
|
|
PVOID pvContext;
|
|
PVOID pvInterfaceReference;
|
|
PVOID pvInterfaceDereference;
|
|
|
|
MACROVISIONPROTECTION_SETLEVEL pfnSetProtectionLevel;
|
|
MACROVISIONPROTECTION_GETLEVEL pfnGetProtectionLevel;
|
|
|
|
} ATI_PRIVATE_INTERFACE_MVProtection, *PATI_PRIVATE_INTERFACE_MVProtection;
|
|
|
|
|
|
#endif // _ATIGUIDS_H_
|