Leaked source code of windows server 2003
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

  1. /*^^*
  2. * File: ATIGUIDS.H
  3. *
  4. * Purpose: Defines the GUIDS of ATI private interfaces exposed
  5. * by the MiniVDD via GPIO Interface.
  6. *
  7. * Reference: Ilya Klebanov
  8. *
  9. * Notes: This file is provided under strict non-disclosure agreements
  10. * it is and remains the property of ATI Technologies Inc.
  11. * Any use of this file or the information it contains to
  12. * develop products commercial or otherwise must be with the
  13. * permission of ATI Technologies Inc.
  14. *
  15. * Copyright (C) December 1997, ATI Technologies Inc.
  16. *
  17. * Please, come to talk to Ilya before you're making any changes to thos file
  18. *
  19. *^^*/
  20. #ifndef _ATIGUIDS_H_
  21. #define _ATIGUIDS_H_
  22. #include "atibios.h"
  23. #ifndef DEVNODE
  24. #define DEVNODE DWORD
  25. #endif
  26. /*
  27. This interface is an entry point to all possible ATI Private interfaces
  28. This GUID is reported back at GPIOOpen command via GPIO Microsoft defined
  29. interface. Among this GUID there is a PVOID pointer exposed, which we'll
  30. cast to the ATIQueryPrivateInterface function pointer as defined below.
  31. The function should return pointer to the specific interface if supported,
  32. or NULL based upon the GUID passed in.
  33. */
  34. // {E3F5D200-6714-11d1-9065-00A02481E06C}
  35. DEFINE_GUID( GUID_ATI_PRIVATE_INTERFACES_QueryInterface,
  36. 0xe3f5d200L, 0x6714, 0x11d1, 0x90, 0x65, 0x0, 0xa0, 0x24, 0x81, 0xe0, 0x6c);
  37. typedef VOID ( STDMETHODCALLTYPE * ATI_QueryPrivateInterface)( PDEVICE_OBJECT, REFGUID, PVOID *);
  38. typedef VOID ( STDMETHODCALLTYPE * ATI_QueryPrivateInterfaceOne)( DEVNODE, REFGUID, PVOID *);
  39. /*
  40. This Interface allows to client get MultiMedia related information from
  41. the BIOS. Usual client is a WDM MiniDriver.
  42. */
  43. // {AD5D6C00-673A-11d1-9065-00A02481E06C}
  44. DEFINE_GUID( GUID_ATI_PRIVATE_INTERFACES_Configuration,
  45. 0xad5d6c00, 0x673a, 0x11d1, 0x90, 0x65, 0x0, 0xa0, 0x24, 0x81, 0xe0, 0x6c);
  46. // {D24AB480-B4D5-11d1-9065-00A02481E06C}
  47. DEFINE_GUID( GUID_ATI_PRIVATE_INTERFACES_Configuration_One,
  48. 0xd24ab480, 0xb4d5, 0x11d1, 0x90, 0x65, 0x0, 0xa0, 0x24, 0x81, 0xe0, 0x6c);
  49. // {299D9CA0-69C3-11d2-BE4D-008029E75CEB}
  50. DEFINE_GUID( GUID_ATI_PRIVATE_INTERFACES_Configuration_Two,
  51. 0x299d9ca0, 0x69c3, 0x11d2, 0xbe, 0x4d, 0x0, 0x80, 0x29, 0xe7, 0x5c, 0xeb);
  52. // {58AEE200-FBBA-11d1-A419-00104B712355}
  53. DEFINE_GUID( GUID_ATI_PRIVATE_INTERFACES_MPP,
  54. 0x58aee200, 0xfbba, 0x11d1, 0xa4, 0x19, 0x0, 0x10, 0x4b, 0x71, 0x23, 0x55);
  55. // {7CF92CA0-06CE-11d2-A419-00104B712355}
  56. DEFINE_GUID( GUID_ATI_PRIVATE_INTERFACES_StreamServices,
  57. 0x7cf92ca0, 0x6ce, 0x11d2, 0xa4, 0x19, 0x0, 0x10, 0x4b, 0x71, 0x23, 0x55);
  58. // {038D2B00-D6DF-11d2-BE4D-008029E75CEB}
  59. DEFINE_GUID( GUID_ATI_PRIVATE_INTERFACES_MVProtection,
  60. 0x38d2b00, 0xd6df, 0x11d2, 0xbe, 0x4d, 0x0, 0x80, 0x29, 0xe7, 0x5c, 0xeb);
  61. typedef NTSTATUS ( STDMETHODCALLTYPE * GETCONFIGURATION_MULTIMEDIA) \
  62. ( PVOID, PUCHAR, PULONG pulSize);
  63. typedef NTSTATUS ( STDMETHODCALLTYPE * GETCONFIGURATION_HARDWARE) \
  64. ( PVOID, PUCHAR, PULONG pulSize);
  65. typedef struct
  66. {
  67. ATI_QueryPrivateInterface pfnQueryPrivateInterface;
  68. GETCONFIGURATION_MULTIMEDIA pfnGetMultimediaConfiguration;
  69. GETCONFIGURATION_HARDWARE pfnGetHardwareConfiguration;
  70. } ATI_PRIVATE_INTERFACE_CONFIGURATION, * PATI_PRIVATE_INTERFACE_CONFIGURATION;
  71. typedef struct
  72. {
  73. USHORT usSize;
  74. USHORT nVersion;
  75. PVOID pvContext;
  76. PVOID pvInterfaceReference;
  77. PVOID pvInterfaceDereference;
  78. GETCONFIGURATION_MULTIMEDIA pfnGetMultimediaConfiguration;
  79. GETCONFIGURATION_HARDWARE pfnGetHardwareConfiguration;
  80. } ATI_PRIVATE_INTERFACE_CONFIGURATION_One, * PATI_PRIVATE_INTERFACE_CONFIGURATION_One;
  81. // Definitions for ulTable
  82. typedef enum
  83. {
  84. ATI_BIOS_CONFIGURATIONTABLE_MULTIMEDIA = 1,
  85. ATI_BIOS_CONFIGURATIONTABLE_HARDWARE
  86. } ATI_CONFIGURATION_TABLE;
  87. typedef NTSTATUS ( STDMETHODCALLTYPE * GETCONFIGURATION_DATA) \
  88. ( PVOID pvContext, ULONG ulTable, PUCHAR puchData, PULONG pulSize);
  89. typedef NTSTATUS ( STDMETHODCALLTYPE * GETCONFIGURATION_REVISION) \
  90. ( PVOID pvContext, ULONG ulTable, PULONG pulRevision);
  91. typedef struct
  92. {
  93. USHORT usSize;
  94. USHORT nVersion;
  95. PVOID pvContext;
  96. PVOID pvInterfaceReference;
  97. PVOID pvInterfaceDereference;
  98. GETCONFIGURATION_REVISION pfnGetConfigurationRevision;
  99. GETCONFIGURATION_DATA pfnGetConfigurationData;
  100. } ATI_PRIVATE_INTERFACE_CONFIGURATION_Two, * PATI_PRIVATE_INTERFACE_CONFIGURATION_Two;
  101. typedef NTSTATUS ( STDMETHODCALLTYPE * MACROVISIONPROTECTION_SETLEVEL) \
  102. ( PVOID, ULONG ulProtectionLevel);
  103. typedef NTSTATUS ( STDMETHODCALLTYPE * MACROVISIONPROTECTION_GETLEVEL) \
  104. ( PVOID, PULONG pulProtectionLevel);
  105. typedef struct
  106. {
  107. USHORT usSize;
  108. USHORT nVersion;
  109. PVOID pvContext;
  110. PVOID pvInterfaceReference;
  111. PVOID pvInterfaceDereference;
  112. MACROVISIONPROTECTION_SETLEVEL pfnSetProtectionLevel;
  113. MACROVISIONPROTECTION_GETLEVEL pfnGetProtectionLevel;
  114. } ATI_PRIVATE_INTERFACE_MVProtection, *PATI_PRIVATE_INTERFACE_MVProtection;
  115. #endif // _ATIGUIDS_H_