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 // Intel HD 55 // Clarkdale (Desktop) GMA HD Lines 56 { 0x8086, 0x0042, D_VERSION(6,14,10,5394), OS_WINXP | OS_WINXP_64 }, 57 { 0x8086, 0x0042, D_VERSION(8,15,10,2993), OS_VISTA | OS_WINDOWS7 }, 58 // Arrandale (Mobile) GMA HD Lines 59 { 0x8086, 0x0046, D_VERSION(6,14,10,5394), OS_WINXP | OS_WINXP_64 }, 60 { 0x8086, 0x0046, D_VERSION(8,15,10,2993), OS_VISTA | OS_WINDOWS7 }, 61 62 // Sandy Bridge HD Graphics 3000/2000 63 { 0x8086, 0x0102, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 }, 64 { 0x8086, 0x0102, D_VERSION(9,17,10,3223), OS_VISTA | OS_WINDOWS7 }, 65 { 0x8086, 0x0106, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 }, 66 { 0x8086, 0x0106, D_VERSION(9,17,10,3223), OS_VISTA | OS_WINDOWS7 }, 67 { 0x8086, 0x0112, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 }, 68 { 0x8086, 0x0112, D_VERSION(9,17,10,3223), OS_VISTA | OS_WINDOWS7 }, 69 { 0x8086, 0x0116, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 }, 70 { 0x8086, 0x0116, D_VERSION(9,17,10,3223), OS_VISTA | OS_WINDOWS7 }, 71 { 0x8086, 0x0122, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 }, 72 { 0x8086, 0x0122, D_VERSION(9,17,10,3223), OS_VISTA | OS_WINDOWS7 }, 73 { 0x8086, 0x0126, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 }, 74 { 0x8086, 0x0126, D_VERSION(9,17,10,3223), OS_VISTA | OS_WINDOWS7 }, 75 { 0x8086, 0x010A, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 }, 76 { 0x8086, 0x010A, D_VERSION(9,17,10,3223), OS_VISTA | OS_WINDOWS7 }, 77 78 // Ivy Bridge 79 { 0x8086, 0x0162, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 }, 80 { 0x8086, 0x0162, D_VERSION(9,18,10,3257), OS_VISTA | OS_WINDOWS7 }, 81 { 0x8086, 0x0166, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 }, 82 { 0x8086, 0x0166, D_VERSION(9,18,10,3257), OS_VISTA | OS_WINDOWS7 }, 83 { 0x8086, 0x016A, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 }, 84 { 0x8086, 0x016A, D_VERSION(9,18,10,3257), OS_VISTA | OS_WINDOWS7 }, 85 { 0x8086, 0x0152, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 }, 86 { 0x8086, 0x0152, D_VERSION(9,18,10,3257), OS_VISTA | OS_WINDOWS7 }, 87 { 0x8086, 0x0156, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 }, 88 { 0x8086, 0x0156, D_VERSION(9,18,10,3257), OS_VISTA | OS_WINDOWS7 }, 89 { 0x8086, 0x015A, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 }, 90 { 0x8086, 0x015A, D_VERSION(9,18,10,3257), OS_VISTA | OS_WINDOWS7 }, 91 92 // Haswell 93 { 0x8086, 0x0402, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 }, 94 { 0x8086, 0x0402, D_VERSION(9,18,10,3257), OS_VISTA | OS_WINDOWS7 }, 95 { 0x8086, 0x0406, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 }, 96 { 0x8086, 0x0406, D_VERSION(9,18,10,3257), OS_VISTA | OS_WINDOWS7 }, 153 { 0x8086, 0x29C3, NO_VERSION, OS_ALL }, 154 { 0x8086, 0xA001, NO_VERSION, OS_ALL }, 155 { 0x8086, 0xA002, NO_VERSION, OS_ALL }, 156 { 0x8086, 0xA011, NO_VERSION, OS_ALL }, 157 { 0x8086, 0xA012, NO_VERSION, OS_ALL }, 158 // GMA 159 { 0x8086, 0x2972, NO_VERSION, OS_ALL }, 160 { 0x8086, 0x2973, NO_VERSION, OS_ALL }, 161 { 0x8086, 0x2992, NO_VERSION, OS_ALL }, 162 { 0x8086, 0x2993, NO_VERSION, OS_ALL }, 163 { 0x8086, 0x29A2, NO_VERSION, OS_ALL }, 164 { 0x8086, 0x29A3, NO_VERSION, OS_ALL }, 165 { 0x8086, 0x2982, NO_VERSION, OS_ALL }, 166 { 0x8086, 0x2983, NO_VERSION, OS_ALL }, 167 { 0x8086, 0x2A02, NO_VERSION, OS_ALL }, 168 { 0x8086, 0x2A03, NO_VERSION, OS_ALL }, 169 { 0x8086, 0x2A12, NO_VERSION, OS_ALL }, 170 { 0x8086, 0x2A13, NO_VERSION, OS_ALL }, 171 172 // Eaglelake (Desktop) GMA 4500 Lines 173 { 0x8086, 0x2E42, D_VERSION(6,14,10,5420), OS_WINXP | OS_WINXP_64 }, 174 { 0x8086, 0x2E42, D_VERSION(8,15,10,2869), OS_VISTA | OS_WINDOWS7 }, 175 { 0x8086, 0x2E43, D_VERSION(6,14,10,5420), OS_WINXP | OS_WINXP_64 }, 176 { 0x8086, 0x2E43, D_VERSION(8,15,10,2869), OS_VISTA | OS_WINDOWS7 }, 177 { 0x8086, 0x2E92, D_VERSION(6,14,10,5420), OS_WINXP | OS_WINXP_64 }, 178 { 0x8086, 0x2E92, D_VERSION(8,15,10,2869), OS_VISTA | OS_WINDOWS7 }, 179 { 0x8086, 0x2E93, D_VERSION(6,14,10,5420), OS_WINXP | OS_WINXP_64 }, 180 { 0x8086, 0x2E93, D_VERSION(8,15,10,2869), OS_VISTA | OS_WINDOWS7 }, 181 { 0x8086, 0x2E12, D_VERSION(6,14,10,5420), OS_WINXP | OS_WINXP_64 }, 182 { 0x8086, 0x2E12, D_VERSION(8,15,10,2869), OS_VISTA | OS_WINDOWS7 }, 183 { 0x8086, 0x2E13, D_VERSION(6,14,10,5420), OS_WINXP | OS_WINXP_64 }, 184 { 0x8086, 0x2E13, D_VERSION(8,15,10,2869), OS_VISTA | OS_WINDOWS7 }, 185 // Eaglelake (Desktop) GMA X4500 Lines 186 { 0x8086, 0x2E32, D_VERSION(6,14,10,5420), OS_WINXP | OS_WINXP_64 }, 187 { 0x8086, 0x2E32, D_VERSION(8,15,10,2869), OS_VISTA | OS_WINDOWS7 }, 188 { 0x8086, 0x2E33, D_VERSION(6,14,10,5420), OS_WINXP | OS_WINXP_64 }, 189 { 0x8086, 0x2E33, D_VERSION(8,15,10,2869), OS_VISTA | OS_WINDOWS7 }, 190 { 0x8086, 0x2E22, D_VERSION(6,14,10,5420), OS_WINXP | OS_WINXP_64 }, 191 { 0x8086, 0x2E22, D_VERSION(8,15,10,2869), OS_VISTA | OS_WINDOWS7 }, 192 // Eaglelake (Desktop) GMA X4500HD Lines 193 { 0x8086, 0x2E23, D_VERSION(6,14,10,5420), OS_WINXP | OS_WINXP_64 }, 194 { 0x8086, 0x2E23, D_VERSION(8,15,10,2869), OS_VISTA | OS_WINDOWS7 }, 195 // Cantiga (Mobile) GMA 4500MHD Lines 196 { 0x8086, 0x2A42, D_VERSION(6,14,10,5420), OS_WINXP | OS_WINXP_64 }, 197 { 0x8086, 0x2A42, D_VERSION(8,15,10,2869), OS_VISTA | OS_WINDOWS7 }, 198 { 0x8086, 0x2A43, D_VERSION(6,14,10,5420), OS_WINXP | OS_WINXP_64 }, 199 { 0x8086, 0x2A43, D_VERSION(8,15,10,2869), OS_VISTA | OS_WINDOWS7 }, 200 201 // ATI Mobility Radeon X1600, X1400, X1450, X1300, X1350 202 // Reason: workaround for 6613066, 6687166 203 // X1300 (four sub ids) 204 { 0x1002, 0x714A, D_VERSION(6,14,10,6706), OS_WINXP }, 205 { 0x1002, 0x714A, D_VERSION(7,14,10,0567), OS_VISTA }, 206 { 0x1002, 0x7149, D_VERSION(6,14,10,6706), OS_WINXP }, 207 { 0x1002, 0x7149, D_VERSION(7,14,10,0567), OS_VISTA }, 208 { 0x1002, 0x714B, D_VERSION(6,14,10,6706), OS_WINXP }, 209 { 0x1002, 0x714B, D_VERSION(7,14,10,0567), OS_VISTA }, 210 { 0x1002, 0x714C, D_VERSION(6,14,10,6706), OS_WINXP }, 211 { 0x1002, 0x714C, D_VERSION(7,14,10,0567), OS_VISTA }, 212 // X1350 (three sub ids) 213 { 0x1002, 0x718B, D_VERSION(6,14,10,6706), OS_WINXP }, 214 { 0x1002, 0x718B, D_VERSION(7,14,10,0567), OS_VISTA }, 215 { 0x1002, 0x718C, D_VERSION(6,14,10,6706), OS_WINXP }, 216 { 0x1002, 0x718C, D_VERSION(7,14,10,0567), OS_VISTA }, 217 { 0x1002, 0x7196, D_VERSION(6,14,10,6706), OS_WINXP }, 218 { 0x1002, 0x7196, D_VERSION(7,14,10,0567), OS_VISTA }, 219 // X1400 | 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 // Intel HD 55 // Clarkdale (Desktop) GMA HD Lines 56 { 0x8086, 0x0042, NO_VERSION, OS_ALL }, 57 // Arrandale (Mobile) GMA HD Lines 58 { 0x8086, 0x0046, NO_VERSION, OS_ALL }, 59 60 // Sandy Bridge HD Graphics 3000/2000 61 { 0x8086, 0x0102, NO_VERSION, OS_ALL }, 62 { 0x8086, 0x0106, NO_VERSION, OS_ALL }, 63 { 0x8086, 0x0112, NO_VERSION, OS_ALL }, 64 { 0x8086, 0x0116, NO_VERSION, OS_ALL }, 65 { 0x8086, 0x0122, NO_VERSION, OS_ALL }, 66 { 0x8086, 0x0126, NO_VERSION, OS_ALL }, 67 { 0x8086, 0x010A, NO_VERSION, OS_ALL }, 68 69 // Ivy Bridge 70 { 0x8086, 0x0162, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 }, 71 { 0x8086, 0x0162, D_VERSION(9,18,10,3257), OS_VISTA | OS_WINDOWS7 }, 72 { 0x8086, 0x0166, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 }, 73 { 0x8086, 0x0166, D_VERSION(9,18,10,3257), OS_VISTA | OS_WINDOWS7 }, 74 { 0x8086, 0x016A, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 }, 75 { 0x8086, 0x016A, D_VERSION(9,18,10,3257), OS_VISTA | OS_WINDOWS7 }, 76 { 0x8086, 0x0152, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 }, 77 { 0x8086, 0x0152, D_VERSION(9,18,10,3257), OS_VISTA | OS_WINDOWS7 }, 78 { 0x8086, 0x0156, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 }, 79 { 0x8086, 0x0156, D_VERSION(9,18,10,3257), OS_VISTA | OS_WINDOWS7 }, 80 { 0x8086, 0x015A, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 }, 81 { 0x8086, 0x015A, D_VERSION(9,18,10,3257), OS_VISTA | OS_WINDOWS7 }, 82 83 // Haswell 84 { 0x8086, 0x0402, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 }, 85 { 0x8086, 0x0402, D_VERSION(9,18,10,3257), OS_VISTA | OS_WINDOWS7 }, 86 { 0x8086, 0x0406, D_VERSION(6,14,10,5437), OS_WINXP | OS_WINXP_64 }, 87 { 0x8086, 0x0406, D_VERSION(9,18,10,3257), OS_VISTA | OS_WINDOWS7 }, 144 { 0x8086, 0x29C3, NO_VERSION, OS_ALL }, 145 { 0x8086, 0xA001, NO_VERSION, OS_ALL }, 146 { 0x8086, 0xA002, NO_VERSION, OS_ALL }, 147 { 0x8086, 0xA011, NO_VERSION, OS_ALL }, 148 { 0x8086, 0xA012, NO_VERSION, OS_ALL }, 149 // GMA 150 { 0x8086, 0x2972, NO_VERSION, OS_ALL }, 151 { 0x8086, 0x2973, NO_VERSION, OS_ALL }, 152 { 0x8086, 0x2992, NO_VERSION, OS_ALL }, 153 { 0x8086, 0x2993, NO_VERSION, OS_ALL }, 154 { 0x8086, 0x29A2, NO_VERSION, OS_ALL }, 155 { 0x8086, 0x29A3, NO_VERSION, OS_ALL }, 156 { 0x8086, 0x2982, NO_VERSION, OS_ALL }, 157 { 0x8086, 0x2983, NO_VERSION, OS_ALL }, 158 { 0x8086, 0x2A02, NO_VERSION, OS_ALL }, 159 { 0x8086, 0x2A03, NO_VERSION, OS_ALL }, 160 { 0x8086, 0x2A12, NO_VERSION, OS_ALL }, 161 { 0x8086, 0x2A13, NO_VERSION, OS_ALL }, 162 163 // Eaglelake (Desktop) GMA 4500 Lines 164 { 0x8086, 0x2E42, NO_VERSION, OS_ALL }, 165 { 0x8086, 0x2E43, NO_VERSION, OS_ALL }, 166 { 0x8086, 0x2E92, NO_VERSION, OS_ALL }, 167 { 0x8086, 0x2E93, NO_VERSION, OS_ALL }, 168 { 0x8086, 0x2E12, NO_VERSION, OS_ALL }, 169 { 0x8086, 0x2E13, NO_VERSION, OS_ALL }, 170 // Eaglelake (Desktop) GMA X4500 Lines 171 { 0x8086, 0x2E32, NO_VERSION, OS_ALL }, 172 { 0x8086, 0x2E33, NO_VERSION, OS_ALL }, 173 { 0x8086, 0x2E22, NO_VERSION, OS_ALL }, 174 // Eaglelake (Desktop) GMA X4500HD Lines 175 { 0x8086, 0x2E23, NO_VERSION, OS_ALL }, 176 // Cantiga (Mobile) GMA 4500MHD Lines 177 { 0x8086, 0x2A42, NO_VERSION, OS_ALL }, 178 { 0x8086, 0x2A43, NO_VERSION, OS_ALL }, 179 180 // ATI Mobility Radeon X1600, X1400, X1450, X1300, X1350 181 // Reason: workaround for 6613066, 6687166 182 // X1300 (four sub ids) 183 { 0x1002, 0x714A, D_VERSION(6,14,10,6706), OS_WINXP }, 184 { 0x1002, 0x714A, D_VERSION(7,14,10,0567), OS_VISTA }, 185 { 0x1002, 0x7149, D_VERSION(6,14,10,6706), OS_WINXP }, 186 { 0x1002, 0x7149, D_VERSION(7,14,10,0567), OS_VISTA }, 187 { 0x1002, 0x714B, D_VERSION(6,14,10,6706), OS_WINXP }, 188 { 0x1002, 0x714B, D_VERSION(7,14,10,0567), OS_VISTA }, 189 { 0x1002, 0x714C, D_VERSION(6,14,10,6706), OS_WINXP }, 190 { 0x1002, 0x714C, D_VERSION(7,14,10,0567), OS_VISTA }, 191 // X1350 (three sub ids) 192 { 0x1002, 0x718B, D_VERSION(6,14,10,6706), OS_WINXP }, 193 { 0x1002, 0x718B, D_VERSION(7,14,10,0567), OS_VISTA }, 194 { 0x1002, 0x718C, D_VERSION(6,14,10,6706), OS_WINXP }, 195 { 0x1002, 0x718C, D_VERSION(7,14,10,0567), OS_VISTA }, 196 { 0x1002, 0x7196, D_VERSION(6,14,10,6706), OS_WINXP }, 197 { 0x1002, 0x7196, D_VERSION(7,14,10,0567), OS_VISTA }, 198 // X1400 |