1*3088717bSVictor Perevertkin /*++ 2*3088717bSVictor Perevertkin 3*3088717bSVictor Perevertkin Copyright (C) Microsoft Corporation. All rights reserved. 4*3088717bSVictor Perevertkin 5*3088717bSVictor Perevertkin Module Name: 6*3088717bSVictor Perevertkin 7*3088717bSVictor Perevertkin 8*3088717bSVictor Perevertkin Abstract: 9*3088717bSVictor Perevertkin 10*3088717bSVictor Perevertkin 11*3088717bSVictor Perevertkin Environment: 12*3088717bSVictor Perevertkin 13*3088717bSVictor Perevertkin 14*3088717bSVictor Perevertkin Notes: 15*3088717bSVictor Perevertkin 16*3088717bSVictor Perevertkin Revision History: 17*3088717bSVictor Perevertkin 18*3088717bSVictor Perevertkin --*/ 19*3088717bSVictor Perevertkin 20*3088717bSVictor Perevertkin #include "ntddk.h" 21*3088717bSVictor Perevertkin #include "cdrom.h" 22*3088717bSVictor Perevertkin 23*3088717bSVictor Perevertkin 24*3088717bSVictor Perevertkin #ifdef ALLOC_DATA_PRAGMA 25*3088717bSVictor Perevertkin #pragma data_seg("PAGEDATA") 26*3088717bSVictor Perevertkin #endif 27*3088717bSVictor Perevertkin 28*3088717bSVictor Perevertkin /* 29*3088717bSVictor Perevertkin 30*3088717bSVictor Perevertkin #define CDROM_HACK_DEC_RRD (0x00000001) 31*3088717bSVictor Perevertkin #define CDROM_HACK_FUJITSU_FMCD_10x (0x00000002) 32*3088717bSVictor Perevertkin #define CDROM_HACK_HITACHI_1750 (0x00000004) - obsolete. 33*3088717bSVictor Perevertkin #define CDROM_HACK_HITACHI_GD_2000 (0x00000008) 34*3088717bSVictor Perevertkin #define CDROM_HACK_TOSHIBA_SD_W1101 (0x00000010) 35*3088717bSVictor Perevertkin #define CDROM_HACK_TOSHIBA_XM_3xx (0x00000020) - obsolete. 36*3088717bSVictor Perevertkin #define CDROM_HACK_NEC_CDDA (0x00000040) 37*3088717bSVictor Perevertkin #define CDROM_HACK_PLEXTOR_CDDA (0x00000080) 38*3088717bSVictor Perevertkin #define CDROM_HACK_BAD_GET_CONFIG_SUPPORT (0x00000100) 39*3088717bSVictor Perevertkin #define CDROM_HACK_FORCE_READ_CD_DETECTION (0x00000200) 40*3088717bSVictor Perevertkin #define CDROM_HACK_READ_CD_SUPPORTED (0x00000400) 41*3088717bSVictor Perevertkin 42*3088717bSVictor Perevertkin */ 43*3088717bSVictor Perevertkin 44*3088717bSVictor Perevertkin CDROM_SCAN_FOR_SPECIAL_INFO CdromHackItems[] = { 45*3088717bSVictor Perevertkin // digital put out drives using 512 byte block sizes, 46*3088717bSVictor Perevertkin // and needed us to send a mode page to set the sector 47*3088717bSVictor Perevertkin // size back to 2048. 48*3088717bSVictor Perevertkin { "DEC" , "RRD" , NULL, 0x0001 }, 49*3088717bSVictor Perevertkin // these fujitsu drives take longer than ten seconds to 50*3088717bSVictor Perevertkin // timeout commands when audio discs are placed in them 51*3088717bSVictor Perevertkin { "FUJITSU" , "FMCD-101" , NULL, 0x0002 }, 52*3088717bSVictor Perevertkin { "FUJITSU" , "FMCD-102" , NULL, 0x0002 }, 53*3088717bSVictor Perevertkin // these hitachi drives don't work properly in PIO mode 54*3088717bSVictor Perevertkin //{ "HITACHI ", "CDR-1750S" , NULL, 0x0004 }, 55*3088717bSVictor Perevertkin //{ "HITACHI ", "CDR-3650/1650S" , NULL, 0x0004 }, 56*3088717bSVictor Perevertkin // this particular gem doesn't automatcially spin up 57*3088717bSVictor Perevertkin // on some media access commands. 58*3088717bSVictor Perevertkin { "" , "HITACHI GD-2000" , NULL, 0x0008 }, 59*3088717bSVictor Perevertkin { "" , "HITACHI DVD-ROM GD-2000" , NULL, 0x0008 }, 60*3088717bSVictor Perevertkin // this particular drive doesn't support DVD playback. 61*3088717bSVictor Perevertkin // just print an error message in CHK builds. 62*3088717bSVictor Perevertkin { "TOSHIBA ", "SD-W1101 DVD-RAM" , NULL, 0x0010 }, 63*3088717bSVictor Perevertkin // not sure what this device's issue was. seems to 64*3088717bSVictor Perevertkin // require mode selects at various times. 65*3088717bSVictor Perevertkin //{ "TOSHIBA ", "CD-ROM XM-3" , NULL, 0x0020 }, 66*3088717bSVictor Perevertkin // NEC defined a "READ_CD" type command before there was 67*3088717bSVictor Perevertkin // a standard, so fall back on this as an option. 68*3088717bSVictor Perevertkin { "NEC" , NULL , NULL, 0x0040 }, 69*3088717bSVictor Perevertkin // plextor defined a "READ_CD" type command before there was 70*3088717bSVictor Perevertkin // a standard, so fall back on this as an option. 71*3088717bSVictor Perevertkin { "PLEXTOR ", NULL , NULL, 0x0080 }, 72*3088717bSVictor Perevertkin // this drive times out and sometimes disappears from the bus 73*3088717bSVictor Perevertkin // when send GET_CONFIGURATION commands. don't send them. 74*3088717bSVictor Perevertkin { "" , "LG DVD-ROM DRD-840B" , NULL, 0x0100 }, 75*3088717bSVictor Perevertkin { "" , "SAMSUNG DVD-ROM SD-608" , NULL, 0x0300 }, 76*3088717bSVictor Perevertkin // these drives should have supported READ_CD, but at least 77*3088717bSVictor Perevertkin // some firmware revisions did not. force READ_CD detection. 78*3088717bSVictor Perevertkin { "" , "SAMSUNG DVD-ROM SD-" , NULL, 0x0200 }, 79*3088717bSVictor Perevertkin // the mitsumi drive below doesn't follow the block-only spec, 80*3088717bSVictor Perevertkin // and we end up hanging when sending it commands it doesn't 81*3088717bSVictor Perevertkin // understand. this causes complications later, also. 82*3088717bSVictor Perevertkin { "MITSUMI ", "CR-4802TE " , NULL, 0x0100 }, 83*3088717bSVictor Perevertkin // some drives return various funky errors (such as 3/2/0 NO_SEEK_COMPLETE) 84*3088717bSVictor Perevertkin // during the detection of READ_CD support, resulting in iffy detection. 85*3088717bSVictor Perevertkin // since they probably don't support mode switching, which is really old 86*3088717bSVictor Perevertkin // legacy stuff anyways, the ability to read digitally is lost when 87*3088717bSVictor Perevertkin // these drives return unexpected error codes. note: MMC compliant drives 88*3088717bSVictor Perevertkin // are presumed to support READ_CD, as are DVD drives, and anything 89*3088717bSVictor Perevertkin // connected to a bus type other than IDE or SCSI, and therefore don't 90*3088717bSVictor Perevertkin // need to be here. 91*3088717bSVictor Perevertkin { "YAMAHA ", "CRW8424S " , NULL, 0x0400 }, 92*3088717bSVictor Perevertkin // Polling frequently on virtual optical devices created by Hyper-V will 93*3088717bSVictor Perevertkin // cause a significant perf / power hit. These devices need to be polled 94*3088717bSVictor Perevertkin // less frequently for device state changes. 95*3088717bSVictor Perevertkin { "MSFT ", NULL , NULL, 0x2000 }, 96*3088717bSVictor Perevertkin // and finally, a place to finish the list. :) 97*3088717bSVictor Perevertkin { NULL , NULL , NULL, 0x0000 } 98*3088717bSVictor Perevertkin }; 99*3088717bSVictor Perevertkin 100*3088717bSVictor Perevertkin CDROM_SCAN_FOR_SPECIAL_INFO CdRomBadItems[] = { // Type (HH, slim) + WHQL Date, if known 101*3088717bSVictor Perevertkin { "" , "MITSUMI CD-ROM FX240" , NULL , 0x02 }, 102*3088717bSVictor Perevertkin { "" , "MITSUMI CD-ROM FX320" , NULL , 0x02 }, 103*3088717bSVictor Perevertkin { "" , "MITSUMI CD-ROM FX322" , NULL , 0x02 }, 104*3088717bSVictor Perevertkin { "" , "TEAC DV-28E-A" , "2.0A", 0x02 }, 105*3088717bSVictor Perevertkin { "" , "HP CD-Writer cd16h" , "Q000", 0x02 }, 106*3088717bSVictor Perevertkin { "" , "_NEC NR-7800A" , "1.33", 0x02 }, 107*3088717bSVictor Perevertkin { "" , "COMPAQ CRD-8481B" , NULL , 0x04 }, 108*3088717bSVictor Perevertkin // The following is a list of device that report too many OpChange/Add events. 109*3088717bSVictor Perevertkin // They require ignoring (or not sending) the OpChange flag in the GESN command. 110*3088717bSVictor Perevertkin // This list contains vendor ID and product ID as separate strings for USB/1394 interface. 111*3088717bSVictor Perevertkin { "HL-DT-ST", "DVDRAM GMA-4020B" , NULL , 0x10 }, // hh , 2002/04/22 112*3088717bSVictor Perevertkin { "HL-DT-ST", "DVD-RW GCA-4020B" , NULL , 0x10 }, // hh , 2002/05/14 113*3088717bSVictor Perevertkin { "HL-DT-ST", "DVDRAM GSA-4040B" , NULL , 0x10 }, // hh , 2003/05/06 114*3088717bSVictor Perevertkin { "HL-DT-ST", "DVDRAM GMA-4040B" , NULL , 0x10 }, // hh , 2003/07/27 115*3088717bSVictor Perevertkin { "HL-DT-ST", "DVD-RW GWA-4040B" , NULL , 0x10 }, // hh , 2003/11/18 116*3088717bSVictor Perevertkin { "HL-DT-ST", "DVDRAM GSA-4081B" , NULL , 0x10 }, // hh , 2003/11/06 117*3088717bSVictor Perevertkin { "HL-DT-ST", "DVDRAM GSA-4082B" , NULL , 0x10 }, // hh , 2004/01/27 118*3088717bSVictor Perevertkin { "HL-DT-ST", "DVD-RW GWA-4082B" , NULL , 0x10 }, // hh , 2004/03/11 119*3088717bSVictor Perevertkin { "HL-DT-ST", "DVDRAM GSA-4120B" , NULL , 0x10 }, // hh , 2004/05/16 120*3088717bSVictor Perevertkin { "HL-DT-ST", "DVD+RW GRA-4120B" , NULL , 0x10 }, // hh , 2004/04/28 121*3088717bSVictor Perevertkin { "HL-DT-ST", "DVDRAM GSA-4160B" , NULL , 0x10 }, // hh , 2004/08/12 122*3088717bSVictor Perevertkin { "HL-DT-ST", "DVD-RW GWA-4160B" , NULL , 0x10 }, // hh , 2004/08/24 123*3088717bSVictor Perevertkin { "HL-DT-ST", "DVDRAM GSA-4163B" , NULL , 0x10 }, // hh , 2004/11/09 124*3088717bSVictor Perevertkin { "HL-DT-ST", "DVD-RW GWA-4163B" , NULL , 0x10 }, // hh , 2004/12/29 125*3088717bSVictor Perevertkin { "HL-DT-ST", "DVDRAM GSA-4165B" , NULL , 0x10 }, // hh , 2005/06/09 126*3088717bSVictor Perevertkin { "HL-DT-ST", "DVDRAM_GSA-4165B" , NULL , 0x10 }, // hh , 2005/06/28 127*3088717bSVictor Perevertkin { "HL-DT-ST", "DVD-RW GWA-4165B" , NULL , 0x10 }, // hh , 2005/08/23 128*3088717bSVictor Perevertkin { "HL-DT-ST", "DVDRAM GSA-4167B" , NULL , 0x10 }, // hh , 2005/07/01 129*3088717bSVictor Perevertkin { "HL-DT-ST", "DVDRAM GSA-H10N" , NULL , 0x10 }, // hh , 2006/02/16 130*3088717bSVictor Perevertkin { "HL-DT-ST", "DVDRAM_GSA-H10N" , NULL , 0x10 }, // hh , 2006/02/16 131*3088717bSVictor Perevertkin { "HL-DT-ST", "DVDRAM GSA-H10L" , NULL , 0x10 }, // hh , 2006/02/27 132*3088717bSVictor Perevertkin { "HL-DT-ST", "DVDRAM_GSA-H10L" , NULL , 0x10 }, // hh , 2006/04/21 133*3088717bSVictor Perevertkin { "HL-DT-ST", "DVDRAM GSA-H10A" , NULL , 0x10 }, // hh , 2006/01/03 134*3088717bSVictor Perevertkin { "HL-DT-ST", "DVDRAM_GSA-H10A" , NULL , 0x10 }, // hh , 2006/05/14 135*3088717bSVictor Perevertkin { "HL-DT-ST", "DVD-RW GSA-H11N" , NULL , 0x10 }, // hh , 2006/04/28 136*3088717bSVictor Perevertkin { "HL-DT-ST", "DVD-RW_GSA-H11N" , NULL , 0x10 }, // hh , 2006/02/22 137*3088717bSVictor Perevertkin 138*3088717bSVictor Perevertkin { "HL-DT-ST", "DVDRAM GSA-4080N" , NULL , 0x10 }, // slim, 2004/08/08 139*3088717bSVictor Perevertkin { "HL-DT-ST", "DVDRAM GMA-4080N" , NULL , 0x10 }, // slim, 2004/11/09 140*3088717bSVictor Perevertkin { "HL-DT-ST", "DVD-RW GCA-4080N" , NULL , 0x10 }, // slim, 2004/11/22 141*3088717bSVictor Perevertkin { "HL-DT-ST", "DVD-RW GWA-4080N" , NULL , 0x10 }, // slim, 2004/08/17 142*3088717bSVictor Perevertkin { "HL-DT-ST", "DVDRAM GSA-4082N" , NULL , 0x10 }, // slim, 2005/07/12 143*3088717bSVictor Perevertkin { "HL-DT-ST", "DVDRAM_GSA-4082N" , NULL , 0x10 }, // slim, 2005/09/21 144*3088717bSVictor Perevertkin { "HL-DT-ST", "DVDRAM GMA-4082N" , NULL , 0x10 }, // slim, 2005/10/20 145*3088717bSVictor Perevertkin { "HL-DT-ST", "DVD-RW GRA-4082N" , NULL , 0x10 }, // slim, 2006/06/07 146*3088717bSVictor Perevertkin { "HL-DT-ST", "DVD-RW GWA-4082N" , NULL , 0x10 }, // slim, 2005/05/24 147*3088717bSVictor Perevertkin { "HL-DT-ST", "DVDRAM GMA4082Nf" , NULL , 0x10 }, // slim, 2006/02/28 148*3088717bSVictor Perevertkin { "HL-DT-ST", "DVDRAM GMA4082Nj" , NULL , 0x10 }, // slim, 2006/01/26 149*3088717bSVictor Perevertkin 150*3088717bSVictor Perevertkin { "HL-DT-ST", "DVDRAM GSA-4084N" , NULL , 0x10 }, // slim, 2005/12/21 151*3088717bSVictor Perevertkin { "HL-DT-ST", "DVDRAM GMA-4084N" , NULL , 0x10 }, // slim, 2006/02/15 152*3088717bSVictor Perevertkin { "HP" , "DVD Writer 550s" , NULL , 0x10 }, // slim, 2006/05/08 153*3088717bSVictor Perevertkin { "HL-DT-ST", "DVDRAM GSA-T10N" , NULL , 0x10 }, // slim, 2006/07/26 154*3088717bSVictor Perevertkin { "HL-DT-ST", "DVDRAM_GSA-T10N" , NULL , 0x10 }, // slim, 2006/07/26 155*3088717bSVictor Perevertkin { "HL-DT-ST", "DVD+-RW GSA-T11N" , NULL , 0x10 }, // slim, 2006/07/25 156*3088717bSVictor Perevertkin 157*3088717bSVictor Perevertkin { "HL-DT-ST", "DVD-ROM GDR8160B" , NULL , 0x10 }, // hh , 2001/10/12 158*3088717bSVictor Perevertkin { "COMPAQ" , "DVD-ROM GDR8160B" , NULL , 0x10 }, // hh , 2001/11/08 159*3088717bSVictor Perevertkin { "HL-DT-ST", "DVD-ROM GDR8161B" , NULL , 0x10 }, // hh , 2002/07/19 160*3088717bSVictor Perevertkin { "HL-DT-ST", "DVD-ROM GDR8162B" , NULL , 0x10 }, // hh , 2003/04/22 161*3088717bSVictor Perevertkin { "HL-DT-ST", "DVD-ROM GDR8163B" , NULL , 0x10 }, // hh , 2004/05/19 162*3088717bSVictor Perevertkin { "HL-DT-ST", "DVD-ROM GDR8164B" , NULL , 0x10 }, // hh , 2005/06/29 163*3088717bSVictor Perevertkin { "HL-DT-ST", "DVD-ROM GDRH10N" , NULL , 0x10 }, // hh , 2006/03/07 164*3088717bSVictor Perevertkin 165*3088717bSVictor Perevertkin { "HL-DT-ST", "DVD-ROM GDR8081N" , NULL , 0x10 }, // slim, 2001/08/27 166*3088717bSVictor Perevertkin { "HL-DT-ST", "DVD-ROM GDR8082N" , NULL , 0x10 }, // slim, 2003/02/02 167*3088717bSVictor Perevertkin { "HL-DT-ST", "DVD-ROM GDR8083N" , NULL , 0x10 }, // slim, 2003/02/02 168*3088717bSVictor Perevertkin { "HL-DT-ST", "DVD-ROM GDR8085N" , NULL , 0x10 }, // slim, 2005/11/10 169*3088717bSVictor Perevertkin 170*3088717bSVictor Perevertkin { "HL-DT-ST", "RW/DVD GCC-4080N" , NULL , 0x10 }, // slim, 2001/08/21 171*3088717bSVictor Perevertkin { "HL-DT-ST", "RW/DVD_GCC-4080N" , NULL , 0x10 }, // slim, 172*3088717bSVictor Perevertkin { "HL-DT-ST", "RW/DVD GCC-4160N" , NULL , 0x10 }, // slim, 2002/04/08 173*3088717bSVictor Perevertkin { "HL-DT-ST", "RW/DVD GCC-4240N" , NULL , 0x10 }, // slim, 2002/04/26 174*3088717bSVictor Perevertkin { "HL-DT-ST", "RW/DVD GCC-4241N" , NULL , 0x10 }, // slim, 2003/04/07 175*3088717bSVictor Perevertkin { "HL-DT-ST", "RW/DVD_GCC-4241N" , NULL , 0x10 }, // slim, 2004/03/07 176*3088717bSVictor Perevertkin { "HL-DT-ST", "RW/DVD GCC-4242N" , NULL , 0x10 }, // slim, 2003/12/21 177*3088717bSVictor Perevertkin { "HL-DT-ST", "RW/DVD GCC-4246N" , NULL , 0x10 }, // slim, 2005/05/23 178*3088717bSVictor Perevertkin { "HL-DT-ST", "BD-RE GBW-H10N" , NULL , 0x10 }, // hh , 2006/06/27 179*3088717bSVictor Perevertkin 180*3088717bSVictor Perevertkin { "HL-DT-ST", "DVDRAM GSA-4083N" , NULL , 0x10 }, // hh , 2006/05/17 181*3088717bSVictor Perevertkin { "HL-DT-ST", "DVD+-RW GWA4083N" , NULL , 0x10 }, // hh , 2006/06/05 182*3088717bSVictor Perevertkin 183*3088717bSVictor Perevertkin { "PIONEER", "DVD-RW DVR-106D" , NULL , 0x10 }, // hh , ? 184*3088717bSVictor Perevertkin { "ASUS", "DVD-RW DRW-0402P" , NULL , 0x10 }, // hh , ? 185*3088717bSVictor Perevertkin 186*3088717bSVictor Perevertkin // 187*3088717bSVictor Perevertkin // This list contains devices that claims to support asynchronous notification, but 188*3088717bSVictor Perevertkin // doesn't handle it well (e.g., some TSST devices will not report media removal if 189*3088717bSVictor Perevertkin // the GESN command is sent down immediately after the AN interrupt, they need some 190*3088717bSVictor Perevertkin // time in between to be able to correctly report media removal). 191*3088717bSVictor Perevertkin // 192*3088717bSVictor Perevertkin 193*3088717bSVictor Perevertkin { "TSSTcorp", "CDDVDW SN-S083A" , "SB00", 0x40 }, // slim, ? 194*3088717bSVictor Perevertkin 195*3088717bSVictor Perevertkin // 196*3088717bSVictor Perevertkin // This list contains vendor ID and product ID as a single string for ATAPI interface. 197*3088717bSVictor Perevertkin // 198*3088717bSVictor Perevertkin 199*3088717bSVictor Perevertkin { "", "HL-DT-ST DVDRAM GMA-4020B" , NULL , 0x10 }, // hh , 2002/04/22 200*3088717bSVictor Perevertkin { "", "HL-DT-ST DVD-RW GCA-4020B" , NULL , 0x10 }, // hh , 2002/05/14 201*3088717bSVictor Perevertkin { "", "HL-DT-ST DVDRAM GSA-4040B" , NULL , 0x10 }, // hh , 2003/05/06 202*3088717bSVictor Perevertkin { "", "HL-DT-ST DVDRAM GMA-4040B" , NULL , 0x10 }, // hh , 2003/07/27 203*3088717bSVictor Perevertkin { "", "HL-DT-ST DVD-RW GWA-4040B" , NULL , 0x10 }, // hh , 2003/11/18 204*3088717bSVictor Perevertkin { "", "HL-DT-ST DVDRAM GSA-4081B" , NULL , 0x10 }, // hh , 2003/11/06 205*3088717bSVictor Perevertkin { "", "HL-DT-ST DVDRAM GSA-4082B" , NULL , 0x10 }, // hh , 2004/01/27 206*3088717bSVictor Perevertkin { "", "HL-DT-ST DVD-RW GWA-4082B" , NULL , 0x10 }, // hh , 2004/03/11 207*3088717bSVictor Perevertkin { "", "HL-DT-ST DVDRAM GSA-4120B" , NULL , 0x10 }, // hh , 2004/05/16 208*3088717bSVictor Perevertkin { "", "HL-DT-ST DVD+RW GRA-4120B" , NULL , 0x10 }, // hh , 2004/04/28 209*3088717bSVictor Perevertkin { "", "HL-DT-ST DVDRAM GSA-4160B" , NULL , 0x10 }, // hh , 2004/08/12 210*3088717bSVictor Perevertkin { "", "HL-DT-ST DVD-RW GWA-4160B" , NULL , 0x10 }, // hh , 2004/08/24 211*3088717bSVictor Perevertkin { "", "HL-DT-ST DVDRAM GSA-4163B" , NULL , 0x10 }, // hh , 2004/11/09 212*3088717bSVictor Perevertkin { "", "HL-DT-ST DVD-RW GWA-4163B" , NULL , 0x10 }, // hh , 2004/12/29 213*3088717bSVictor Perevertkin { "", "HL-DT-ST DVDRAM GSA-4165B" , NULL , 0x10 }, // hh , 2005/06/09 214*3088717bSVictor Perevertkin { "", "HL-DT-ST DVDRAM_GSA-4165B" , NULL , 0x10 }, // hh , 2005/06/28 215*3088717bSVictor Perevertkin { "", "HL-DT-ST DVD-RW GWA-4165B" , NULL , 0x10 }, // hh , 2005/08/23 216*3088717bSVictor Perevertkin { "", "HL-DT-ST DVDRAM GSA-4167B" , NULL , 0x10 }, // hh , 2005/07/01 217*3088717bSVictor Perevertkin { "", "HL-DT-ST DVDRAM GSA-H10N" , NULL , 0x10 }, // hh , 2006/02/16 218*3088717bSVictor Perevertkin { "", "HL-DT-ST DVDRAM_GSA-H10N" , NULL , 0x10 }, // hh , 2006/02/16 219*3088717bSVictor Perevertkin { "", "HL-DT-ST DVDRAM GSA-H10L" , NULL , 0x10 }, // hh , 2006/02/27 220*3088717bSVictor Perevertkin { "", "HL-DT-ST DVDRAM_GSA-H10L" , NULL , 0x10 }, // hh , 2006/04/21 221*3088717bSVictor Perevertkin { "", "HL-DT-ST DVDRAM GSA-H10A" , NULL , 0x10 }, // hh , 2006/01/03 222*3088717bSVictor Perevertkin { "", "HL-DT-ST DVDRAM_GSA-H10A" , NULL , 0x10 }, // hh , 2006/05/14 223*3088717bSVictor Perevertkin { "", "HL-DT-ST DVD-RW GSA-H11N" , NULL , 0x10 }, // hh , 2006/04/28 224*3088717bSVictor Perevertkin { "", "HL-DT-ST DVD-RW_GSA-H11N" , NULL , 0x10 }, // hh , 2006/02/22 225*3088717bSVictor Perevertkin 226*3088717bSVictor Perevertkin { "", "HL-DT-ST DVDRAM GSA-4080N" , NULL , 0x10 }, // slim, 2004/08/08 227*3088717bSVictor Perevertkin { "", "HL-DT-ST DVDRAM GMA-4080N" , NULL , 0x10 }, // slim, 2004/11/09 228*3088717bSVictor Perevertkin { "", "HL-DT-ST DVD-RW GCA-4080N" , NULL , 0x10 }, // slim, 2004/11/22 229*3088717bSVictor Perevertkin { "", "HL-DT-ST DVD-RW GWA-4080N" , NULL , 0x10 }, // slim, 2004/08/17 230*3088717bSVictor Perevertkin { "", "HL-DT-ST DVDRAM GSA-4082N" , NULL , 0x10 }, // slim, 2005/07/12 231*3088717bSVictor Perevertkin { "", "HL-DT-ST DVDRAM_GSA-4082N" , NULL , 0x10 }, // slim, 2005/09/21 232*3088717bSVictor Perevertkin { "", "HL-DT-ST DVDRAM GMA-4082N" , NULL , 0x10 }, // slim, 2005/10/20 233*3088717bSVictor Perevertkin { "", "HL-DT-ST DVD-RW GRA-4082N" , NULL , 0x10 }, // slim, 2006/06/07 234*3088717bSVictor Perevertkin { "", "HL-DT-ST DVD-RW GWA-4082N" , NULL , 0x10 }, // slim, 2005/05/24 235*3088717bSVictor Perevertkin { "", "HL-DT-ST DVDRAM GMA4082Nf" , NULL , 0x10 }, // slim, 2006/02/28 236*3088717bSVictor Perevertkin { "", "HL-DT-ST DVDRAM GMA4082Nj" , NULL , 0x10 }, // slim, 2006/01/26 237*3088717bSVictor Perevertkin 238*3088717bSVictor Perevertkin { "", "HL-DT-ST DVDRAM GSA-4084N" , NULL , 0x10 }, // slim, 2005/12/21 239*3088717bSVictor Perevertkin { "", "HL-DT-ST DVDRAM GMA-4084N" , NULL , 0x10 }, // slim, 2006/02/15 240*3088717bSVictor Perevertkin { "", "HP DVD Writer 550s" , NULL , 0x10 }, // slim, 2006/05/08 241*3088717bSVictor Perevertkin { "", "HL-DT-ST DVDRAM GSA-T10N" , NULL , 0x10 }, // slim, 2006/07/26 242*3088717bSVictor Perevertkin { "", "HL-DT-ST DVDRAM_GSA-T10N" , NULL , 0x10 }, // slim, 2006/07/26 243*3088717bSVictor Perevertkin { "", "HL-DT-ST DVD+-RW GSA-T11N" , NULL , 0x10 }, // slim, 2006/07/25 244*3088717bSVictor Perevertkin 245*3088717bSVictor Perevertkin { "", "HL-DT-ST DVD-ROM GDR8160B" , NULL , 0x10 }, // hh , 2001/10/12 246*3088717bSVictor Perevertkin { "", "COMPAQ DVD-ROM GDR8160B" , NULL , 0x10 }, // hh , 2001/11/08 247*3088717bSVictor Perevertkin { "", "HL-DT-ST DVD-ROM GDR8161B" , NULL , 0x10 }, // hh , 2002/07/19 248*3088717bSVictor Perevertkin { "", "HL-DT-ST DVD-ROM GDR8162B" , NULL , 0x10 }, // hh , 2003/04/22 249*3088717bSVictor Perevertkin { "", "HL-DT-ST DVD-ROM GDR8163B" , NULL , 0x10 }, // hh , 2004/05/19 250*3088717bSVictor Perevertkin { "", "HL-DT-ST DVD-ROM GDR8164B" , NULL , 0x10 }, // hh , 2005/06/29 251*3088717bSVictor Perevertkin { "", "HL-DT-ST DVD-ROM GDRH10N" , NULL , 0x10 }, // hh , 2006/03/07 252*3088717bSVictor Perevertkin 253*3088717bSVictor Perevertkin { "", "HL-DT-ST DVD-ROM GDR8081N" , NULL , 0x10 }, // slim, 2001/08/27 254*3088717bSVictor Perevertkin { "", "HL-DT-ST DVD-ROM GDR8082N" , NULL , 0x10 }, // slim, 2003/02/02 255*3088717bSVictor Perevertkin { "", "HL-DT-ST DVD-ROM GDR8083N" , NULL , 0x10 }, // slim, 2003/02/02 256*3088717bSVictor Perevertkin { "", "HL-DT-ST DVD-ROM GDR8085N" , NULL , 0x10 }, // slim, 2005/11/10 257*3088717bSVictor Perevertkin 258*3088717bSVictor Perevertkin { "", "HL-DT-ST RW/DVD GCC-4080N" , NULL , 0x10 }, // slim, 2001/08/21 259*3088717bSVictor Perevertkin { "", "HL-DT-ST RW/DVD_GCC-4080N" , NULL , 0x10 }, // slim, 260*3088717bSVictor Perevertkin { "", "HL-DT-ST RW/DVD GCC-4160N" , NULL , 0x10 }, // slim, 2002/04/08 261*3088717bSVictor Perevertkin { "", "HL-DT-ST RW/DVD GCC-4240N" , NULL , 0x10 }, // slim, 2002/04/26 262*3088717bSVictor Perevertkin { "", "HL-DT-ST RW/DVD GCC-4241N" , NULL , 0x10 }, // slim, 2003/04/07 263*3088717bSVictor Perevertkin { "", "HL-DT-ST RW/DVD_GCC-4241N" , NULL , 0x10 }, // slim, 2004/03/07 264*3088717bSVictor Perevertkin { "", "HL-DT-ST RW/DVD GCC-4242N" , NULL , 0x10 }, // slim, 2003/12/21 265*3088717bSVictor Perevertkin { "", "HL-DT-ST RW/DVD GCC-4246N" , NULL , 0x10 }, // slim, 2005/05/23 266*3088717bSVictor Perevertkin { "", "HL-DT-ST BD-RE GBW-H10N" , NULL , 0x10 }, // hh , 2006/06/27 267*3088717bSVictor Perevertkin 268*3088717bSVictor Perevertkin { "", "HL-DT-ST DVDRAM GSA-4083N" , NULL , 0x10 }, // hh , 2006/05/17 269*3088717bSVictor Perevertkin { "", "HL-DT-ST DVD+-RW GWA4083N" , NULL , 0x10 }, // hh , 2006/06/05 270*3088717bSVictor Perevertkin 271*3088717bSVictor Perevertkin { "", "PIONEER DVD-RW DVR-106D" , NULL , 0x10 }, // hh , ? 272*3088717bSVictor Perevertkin { "", "ASUS DVD-RW DRW-0402P" , NULL , 0x10 }, // hh , ? 273*3088717bSVictor Perevertkin 274*3088717bSVictor Perevertkin 275*3088717bSVictor Perevertkin // Sony sourced some drives from LG also.... 276*3088717bSVictor Perevertkin 277*3088717bSVictor Perevertkin { NULL , NULL , NULL , 0x00 }, 278*3088717bSVictor Perevertkin }; 279*3088717bSVictor Perevertkin 280*3088717bSVictor Perevertkin 281*3088717bSVictor Perevertkin #ifdef ALLOC_DATA_PRAGMA 282*3088717bSVictor Perevertkin #pragma data_seg() 283*3088717bSVictor Perevertkin #endif 284