34 DWORD DeviceId; 35 LONGLONG DriverVersion; // minimum driver version to pass, or NO_VERSION 36 USHORT OsInfo; // OSes where the DriverVersion is relevant or, OS_ALL 37 } ADAPTER_INFO; 38 39 // this DeviceId means that all vendor boards are to be excluded 40 #define ALL_DEVICEIDS (0xffffffff) 41 42 #define D_VERSION(H1, H2, L1, L2) \ 43 (((LONGLONG)((H1 << 16) | H2) << 32) | ((L1 << 16) | (L2))) 44 45 // this driver version is used to pass the driver version check 46 // as it is always greater than any driver version 47 #define MAX_VERSION D_VERSION(0x7fff, 0x7fff, 0x7fff, 0x7fff) 48 // this DriverVersion means that the version of the driver doesn't matter, 49 // all versions must fail ("there's no version of the driver that passes") 50 #define NO_VERSION D_VERSION(0xffff, 0xffff, 0xffff, 0xffff) 51 52 static const ADAPTER_INFO badHardware[] = { 53 54 // All Intel Chips. 55 { 0x8086, ALL_DEVICEIDS, NO_VERSION, OS_ALL }, 56 57 // ATI Mobility Radeon X1600, X1400, X1450, X1300, X1350 58 // Reason: workaround for 6613066, 6687166 59 // X1300 (four sub ids) 60 { 0x1002, 0x714A, D_VERSION(6,14,10,6706), OS_WINXP }, 61 { 0x1002, 0x714A, D_VERSION(7,14,10,0567), OS_VISTA }, 62 { 0x1002, 0x7149, D_VERSION(6,14,10,6706), OS_WINXP }, 63 { 0x1002, 0x7149, D_VERSION(7,14,10,0567), OS_VISTA }, 64 { 0x1002, 0x714B, D_VERSION(6,14,10,6706), OS_WINXP }, 65 { 0x1002, 0x714B, D_VERSION(7,14,10,0567), OS_VISTA }, 66 { 0x1002, 0x714C, D_VERSION(6,14,10,6706), OS_WINXP }, 67 { 0x1002, 0x714C, D_VERSION(7,14,10,0567), OS_VISTA }, 68 // X1350 (three sub ids) 69 { 0x1002, 0x718B, D_VERSION(6,14,10,6706), OS_WINXP }, 70 { 0x1002, 0x718B, D_VERSION(7,14,10,0567), OS_VISTA }, 71 { 0x1002, 0x718C, D_VERSION(6,14,10,6706), OS_WINXP }, 72 { 0x1002, 0x718C, D_VERSION(7,14,10,0567), OS_VISTA }, 73 { 0x1002, 0x7196, D_VERSION(6,14,10,6706), OS_WINXP }, 74 { 0x1002, 0x7196, D_VERSION(7,14,10,0567), OS_VISTA }, 75 // X1400 76 { 0x1002, 0x7145, D_VERSION(6,14,10,6706), OS_WINXP }, | 34 DWORD DeviceId; 35 LONGLONG DriverVersion; // minimum driver version to pass, or NO_VERSION 36 USHORT OsInfo; // OSes where the DriverVersion is relevant or, OS_ALL 37 } ADAPTER_INFO; 38 39 // this DeviceId means that all vendor boards are to be excluded 40 #define ALL_DEVICEIDS (0xffffffff) 41 42 #define D_VERSION(H1, H2, L1, L2) \ 43 (((LONGLONG)((H1 << 16) | H2) << 32) | ((L1 << 16) | (L2))) 44 45 // this driver version is used to pass the driver version check 46 // as it is always greater than any driver version 47 #define MAX_VERSION D_VERSION(0x7fff, 0x7fff, 0x7fff, 0x7fff) 48 // this DriverVersion means that the version of the driver doesn't matter, 49 // all versions must fail ("there's no version of the driver that passes") 50 #define NO_VERSION D_VERSION(0xffff, 0xffff, 0xffff, 0xffff) 51 52 static const ADAPTER_INFO badHardware[] = { 53 54 // ATI Mobility Radeon X1600, X1400, X1450, X1300, X1350 55 // Reason: workaround for 6613066, 6687166 56 // X1300 (four sub ids) 57 { 0x1002, 0x714A, D_VERSION(6,14,10,6706), OS_WINXP }, 58 { 0x1002, 0x714A, D_VERSION(7,14,10,0567), OS_VISTA }, 59 { 0x1002, 0x7149, D_VERSION(6,14,10,6706), OS_WINXP }, 60 { 0x1002, 0x7149, D_VERSION(7,14,10,0567), OS_VISTA }, 61 { 0x1002, 0x714B, D_VERSION(6,14,10,6706), OS_WINXP }, 62 { 0x1002, 0x714B, D_VERSION(7,14,10,0567), OS_VISTA }, 63 { 0x1002, 0x714C, D_VERSION(6,14,10,6706), OS_WINXP }, 64 { 0x1002, 0x714C, D_VERSION(7,14,10,0567), OS_VISTA }, 65 // X1350 (three sub ids) 66 { 0x1002, 0x718B, D_VERSION(6,14,10,6706), OS_WINXP }, 67 { 0x1002, 0x718B, D_VERSION(7,14,10,0567), OS_VISTA }, 68 { 0x1002, 0x718C, D_VERSION(6,14,10,6706), OS_WINXP }, 69 { 0x1002, 0x718C, D_VERSION(7,14,10,0567), OS_VISTA }, 70 { 0x1002, 0x7196, D_VERSION(6,14,10,6706), OS_WINXP }, 71 { 0x1002, 0x7196, D_VERSION(7,14,10,0567), OS_VISTA }, 72 // X1400 73 { 0x1002, 0x7145, D_VERSION(6,14,10,6706), OS_WINXP }, |