xref: /reactos/drivers/storage/class/classpnp/data.c (revision bf1b3cb1)
1*bf1b3cb1SVictor Perevertkin /*++
2*bf1b3cb1SVictor Perevertkin 
3*bf1b3cb1SVictor Perevertkin Copyright (C) Microsoft Corporation, 1991 - 2010
4*bf1b3cb1SVictor Perevertkin 
5*bf1b3cb1SVictor Perevertkin Module Name:
6*bf1b3cb1SVictor Perevertkin 
7*bf1b3cb1SVictor Perevertkin     disk.c
8*bf1b3cb1SVictor Perevertkin 
9*bf1b3cb1SVictor Perevertkin Abstract:
10*bf1b3cb1SVictor Perevertkin 
11*bf1b3cb1SVictor Perevertkin     SCSI disk class driver
12*bf1b3cb1SVictor Perevertkin 
13*bf1b3cb1SVictor Perevertkin Environment:
14*bf1b3cb1SVictor Perevertkin 
15*bf1b3cb1SVictor Perevertkin     kernel mode only
16*bf1b3cb1SVictor Perevertkin 
17*bf1b3cb1SVictor Perevertkin Notes:
18*bf1b3cb1SVictor Perevertkin 
19*bf1b3cb1SVictor Perevertkin Revision History:
20*bf1b3cb1SVictor Perevertkin 
21*bf1b3cb1SVictor Perevertkin --*/
22*bf1b3cb1SVictor Perevertkin 
23*bf1b3cb1SVictor Perevertkin #include "classp.h"
24*bf1b3cb1SVictor Perevertkin 
25*bf1b3cb1SVictor Perevertkin 
26*bf1b3cb1SVictor Perevertkin /*
27*bf1b3cb1SVictor Perevertkin  *  Entry in static list used by debug extension to quickly find all class FDOs.
28*bf1b3cb1SVictor Perevertkin  */
29*bf1b3cb1SVictor Perevertkin LIST_ENTRY AllFdosList = {&AllFdosList, &AllFdosList};
30*bf1b3cb1SVictor Perevertkin 
31*bf1b3cb1SVictor Perevertkin #ifdef ALLOC_DATA_PRAGMA
32*bf1b3cb1SVictor Perevertkin     #pragma data_seg("PAGEDATA")
33*bf1b3cb1SVictor Perevertkin #endif
34*bf1b3cb1SVictor Perevertkin 
35*bf1b3cb1SVictor Perevertkin /*
36*bf1b3cb1SVictor Perevertkin #define FDO_HACK_CANNOT_LOCK_MEDIA              (0x00000001)
37*bf1b3cb1SVictor Perevertkin #define FDO_HACK_GESN_IS_BAD                    (0x00000002)
38*bf1b3cb1SVictor Perevertkin #define FDO_HACK_NO_SYNC_CACHE                  (0x00000004)
39*bf1b3cb1SVictor Perevertkin #define FDO_HACK_NO_RESERVE6                    (0x00000008)
40*bf1b3cb1SVictor Perevertkin #define FDO_HACK_GESN_IGNORE_OPCHANGE           (0x00000010)
41*bf1b3cb1SVictor Perevertkin */
42*bf1b3cb1SVictor Perevertkin 
43*bf1b3cb1SVictor Perevertkin CLASSPNP_SCAN_FOR_SPECIAL_INFO ClassBadItems[] = {                     // Type (HH, slim) + WHQL Date, if known
44*bf1b3cb1SVictor Perevertkin     { ""        , "MITSUMI CD-ROM FX240"           , NULL  ,   0x02 },
45*bf1b3cb1SVictor Perevertkin     { ""        , "MITSUMI CD-ROM FX320"           , NULL  ,   0x02 },
46*bf1b3cb1SVictor Perevertkin     { ""        , "MITSUMI CD-ROM FX322"           , NULL  ,   0x02 },
47*bf1b3cb1SVictor Perevertkin     { ""        , "TEAC DV-28E-A"                  , "2.0A",   0x02 },
48*bf1b3cb1SVictor Perevertkin     { ""        , "HP CD-Writer cd16h"             , "Q000",   0x02 },
49*bf1b3cb1SVictor Perevertkin     { ""        , "_NEC NR-7800A"                  , "1.33",   0x02 },
50*bf1b3cb1SVictor Perevertkin     { ""        , "COMPAQ CRD-8481B"               , NULL  ,   0x04 },
51*bf1b3cb1SVictor Perevertkin     // The following is a list of device that report too many OpChange/Add events.
52*bf1b3cb1SVictor Perevertkin     // They require ignoring (or not sending) the OpChange flag in the GESN command.
53*bf1b3cb1SVictor Perevertkin     // This list contains vendor ID and product ID as separate strings for USB/1394 interface.
54*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVDRAM GMA-4020B"               , NULL  ,   0x10 }, // hh  , 2002/04/22
55*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVD-RW GCA-4020B"               , NULL  ,   0x10 }, // hh  , 2002/05/14
56*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVDRAM GSA-4040B"               , NULL  ,   0x10 }, // hh  , 2003/05/06
57*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVDRAM GMA-4040B"               , NULL  ,   0x10 }, // hh  , 2003/07/27
58*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVD-RW GWA-4040B"               , NULL  ,   0x10 }, // hh  , 2003/11/18
59*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVDRAM GSA-4081B"               , NULL  ,   0x10 }, // hh  , 2003/11/06
60*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVDRAM GSA-4082B"               , NULL  ,   0x10 }, // hh  , 2004/01/27
61*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVD-RW GWA-4082B"               , NULL  ,   0x10 }, // hh  , 2004/03/11
62*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVDRAM GSA-4120B"               , NULL  ,   0x10 }, // hh  , 2004/05/16
63*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVD+RW GRA-4120B"               , NULL  ,   0x10 }, // hh  , 2004/04/28
64*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVDRAM GSA-4160B"               , NULL  ,   0x10 }, // hh  , 2004/08/12
65*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVD-RW GWA-4160B"               , NULL  ,   0x10 }, // hh  , 2004/08/24
66*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVDRAM GSA-4163B"               , NULL  ,   0x10 }, // hh  , 2004/11/09
67*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVD-RW GWA-4163B"               , NULL  ,   0x10 }, // hh  , 2004/12/29
68*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVDRAM GSA-4165B"               , NULL  ,   0x10 }, // hh  , 2005/06/09
69*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVDRAM_GSA-4165B"               , NULL  ,   0x10 }, // hh  , 2005/06/28
70*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVD-RW GWA-4165B"               , NULL  ,   0x10 }, // hh  , 2005/08/23
71*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVDRAM GSA-4167B"               , NULL  ,   0x10 }, // hh  , 2005/07/01
72*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVDRAM GSA-H10N"                , NULL  ,   0x10 }, // hh  , 2006/02/16
73*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVDRAM_GSA-H10N"                , NULL  ,   0x10 }, // hh  , 2006/02/16
74*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVDRAM GSA-H10L"                , NULL  ,   0x10 }, // hh  , 2006/02/27
75*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVDRAM_GSA-H10L"                , NULL  ,   0x10 }, // hh  , 2006/04/21
76*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVDRAM GSA-H10A"                , NULL  ,   0x10 }, // hh  , 2006/01/03
77*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVDRAM_GSA-H10A"                , NULL  ,   0x10 }, // hh  , 2006/05/14
78*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVD-RW GSA-H11N"                , NULL  ,   0x10 }, // hh  , 2006/04/28
79*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVD-RW_GSA-H11N"                , NULL  ,   0x10 }, // hh  , 2006/02/22
80*bf1b3cb1SVictor Perevertkin 
81*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVDRAM GSA-4080N"               , NULL  ,   0x10 }, // slim, 2004/08/08
82*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVDRAM GMA-4080N"               , NULL  ,   0x10 }, // slim, 2004/11/09
83*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVD-RW GCA-4080N"               , NULL  ,   0x10 }, // slim, 2004/11/22
84*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVD-RW GWA-4080N"               , NULL  ,   0x10 }, // slim, 2004/08/17
85*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVDRAM GSA-4082N"               , NULL  ,   0x10 }, // slim, 2005/07/12
86*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVDRAM_GSA-4082N"               , NULL  ,   0x10 }, // slim, 2005/09/21
87*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVDRAM GMA-4082N"               , NULL  ,   0x10 }, // slim, 2005/10/20
88*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVD-RW GRA-4082N"               , NULL  ,   0x10 }, // slim, 2006/06/07
89*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVD-RW GWA-4082N"               , NULL  ,   0x10 }, // slim, 2005/05/24
90*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVDRAM GMA4082Nf"               , NULL  ,   0x10 }, // slim, 2006/02/28
91*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVDRAM GMA4082Nj"               , NULL  ,   0x10 }, // slim, 2006/01/26
92*bf1b3cb1SVictor Perevertkin 
93*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVDRAM GSA-4084N"               , NULL  ,   0x10 }, // slim, 2005/12/21
94*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVDRAM GMA-4084N"               , NULL  ,   0x10 }, // slim, 2006/02/15
95*bf1b3cb1SVictor Perevertkin     { "HP"      , "DVD Writer 550s"                , NULL  ,   0x10 }, // slim, 2006/05/08
96*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVDRAM GSA-T10N"                , NULL  ,   0x10 }, // slim, 2006/07/26
97*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVDRAM_GSA-T10N"                , NULL  ,   0x10 }, // slim, 2006/07/26
98*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVD+-RW GSA-T11N"               , NULL  ,   0x10 }, // slim, 2006/07/25
99*bf1b3cb1SVictor Perevertkin 
100*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVD-ROM GDR8160B"               , NULL  ,   0x10 }, // hh  , 2001/10/12
101*bf1b3cb1SVictor Perevertkin     { "COMPAQ"  , "DVD-ROM GDR8160B"               , NULL  ,   0x10 }, // hh  , 2001/11/08
102*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVD-ROM GDR8161B"               , NULL  ,   0x10 }, // hh  , 2002/07/19
103*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVD-ROM GDR8162B"               , NULL  ,   0x10 }, // hh  , 2003/04/22
104*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVD-ROM GDR8163B"               , NULL  ,   0x10 }, // hh  , 2004/05/19
105*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVD-ROM GDR8164B"               , NULL  ,   0x10 }, // hh  , 2005/06/29
106*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVD-ROM GDRH10N"                , NULL  ,   0x10 }, // hh  , 2006/03/07
107*bf1b3cb1SVictor Perevertkin 
108*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVD-ROM GDR8081N"               , NULL  ,   0x10 }, // slim, 2001/08/27
109*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVD-ROM GDR8082N"               , NULL  ,   0x10 }, // slim, 2003/02/02
110*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVD-ROM GDR8083N"               , NULL  ,   0x10 }, // slim, 2003/02/02
111*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVD-ROM GDR8085N"               , NULL  ,   0x10 }, // slim, 2005/11/10
112*bf1b3cb1SVictor Perevertkin 
113*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "RW/DVD GCC-4080N"               , NULL  ,   0x10 }, // slim, 2001/08/21
114*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "RW/DVD_GCC-4080N"               , NULL  ,   0x10 }, // slim,
115*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "RW/DVD GCC-4160N"               , NULL  ,   0x10 }, // slim, 2002/04/08
116*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "RW/DVD GCC-4240N"               , NULL  ,   0x10 }, // slim, 2002/04/26
117*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "RW/DVD GCC-4241N"               , NULL  ,   0x10 }, // slim, 2003/04/07
118*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "RW/DVD_GCC-4241N"               , NULL  ,   0x10 }, // slim, 2004/03/07
119*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "RW/DVD GCC-4242N"               , NULL  ,   0x10 }, // slim, 2003/12/21
120*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "RW/DVD GCC-4246N"               , NULL  ,   0x10 }, // slim, 2005/05/23
121*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "BD-RE  GBW-H10N"                , NULL  ,   0x10 }, // hh  , 2006/06/27
122*bf1b3cb1SVictor Perevertkin 
123*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVDRAM GSA-4083N"               , NULL  ,   0x10 }, // hh  , 2006/05/17
124*bf1b3cb1SVictor Perevertkin     { "HL-DT-ST", "DVD+-RW GWA4083N"               , NULL  ,   0x10 }, // hh  , 2006/06/05
125*bf1b3cb1SVictor Perevertkin 
126*bf1b3cb1SVictor Perevertkin     { "PIONEER",  "DVD-RW  DVR-106D"               , NULL  ,   0x10 }, // hh  , ?
127*bf1b3cb1SVictor Perevertkin     { "ASUS",     "DVD-RW DRW-0402P"               , NULL  ,   0x10 }, // hh  , ?
128*bf1b3cb1SVictor Perevertkin 
129*bf1b3cb1SVictor Perevertkin     //
130*bf1b3cb1SVictor Perevertkin     // This list contains vendor ID and product ID as a single string for ATAPI interface.
131*bf1b3cb1SVictor Perevertkin     //
132*bf1b3cb1SVictor Perevertkin 
133*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVDRAM GMA-4020B"              , NULL  ,   0x10 }, // hh  , 2002/04/22
134*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVD-RW GCA-4020B"              , NULL  ,   0x10 }, // hh  , 2002/05/14
135*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVDRAM GSA-4040B"              , NULL  ,   0x10 }, // hh  , 2003/05/06
136*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVDRAM GMA-4040B"              , NULL  ,   0x10 }, // hh  , 2003/07/27
137*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVD-RW GWA-4040B"              , NULL  ,   0x10 }, // hh  , 2003/11/18
138*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVDRAM GSA-4081B"              , NULL  ,   0x10 }, // hh  , 2003/11/06
139*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVDRAM GSA-4082B"              , NULL  ,   0x10 }, // hh  , 2004/01/27
140*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVD-RW GWA-4082B"              , NULL  ,   0x10 }, // hh  , 2004/03/11
141*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVDRAM GSA-4120B"              , NULL  ,   0x10 }, // hh  , 2004/05/16
142*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVD+RW GRA-4120B"              , NULL  ,   0x10 }, // hh  , 2004/04/28
143*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVDRAM GSA-4160B"              , NULL  ,   0x10 }, // hh  , 2004/08/12
144*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVD-RW GWA-4160B"              , NULL  ,   0x10 }, // hh  , 2004/08/24
145*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVDRAM GSA-4163B"              , NULL  ,   0x10 }, // hh  , 2004/11/09
146*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVD-RW GWA-4163B"              , NULL  ,   0x10 }, // hh  , 2004/12/29
147*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVDRAM GSA-4165B"              , NULL  ,   0x10 }, // hh  , 2005/06/09
148*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVDRAM_GSA-4165B"              , NULL  ,   0x10 }, // hh  , 2005/06/28
149*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVD-RW GWA-4165B"              , NULL  ,   0x10 }, // hh  , 2005/08/23
150*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVDRAM GSA-4167B"              , NULL  ,   0x10 }, // hh  , 2005/07/01
151*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVDRAM GSA-H10N"               , NULL  ,   0x10 }, // hh  , 2006/02/16
152*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVDRAM_GSA-H10N"               , NULL  ,   0x10 }, // hh  , 2006/02/16
153*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVDRAM GSA-H10L"               , NULL  ,   0x10 }, // hh  , 2006/02/27
154*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVDRAM_GSA-H10L"               , NULL  ,   0x10 }, // hh  , 2006/04/21
155*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVDRAM GSA-H10A"               , NULL  ,   0x10 }, // hh  , 2006/01/03
156*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVDRAM_GSA-H10A"               , NULL  ,   0x10 }, // hh  , 2006/05/14
157*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVD-RW GSA-H11N"               , NULL  ,   0x10 }, // hh  , 2006/04/28
158*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVD-RW_GSA-H11N"               , NULL  ,   0x10 }, // hh  , 2006/02/22
159*bf1b3cb1SVictor Perevertkin 
160*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVDRAM GSA-4080N"              , NULL  ,   0x10 }, // slim, 2004/08/08
161*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVDRAM GMA-4080N"              , NULL  ,   0x10 }, // slim, 2004/11/09
162*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVD-RW GCA-4080N"              , NULL  ,   0x10 }, // slim, 2004/11/22
163*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVD-RW GWA-4080N"              , NULL  ,   0x10 }, // slim, 2004/08/17
164*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVDRAM GSA-4082N"              , NULL  ,   0x10 }, // slim, 2005/07/12
165*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVDRAM_GSA-4082N"              , NULL  ,   0x10 }, // slim, 2005/09/21
166*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVDRAM GMA-4082N"              , NULL  ,   0x10 }, // slim, 2005/10/20
167*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVD-RW GRA-4082N"              , NULL  ,   0x10 }, // slim, 2006/06/07
168*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVD-RW GWA-4082N"              , NULL  ,   0x10 }, // slim, 2005/05/24
169*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVDRAM GMA4082Nf"              , NULL  ,   0x10 }, // slim, 2006/02/28
170*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVDRAM GMA4082Nj"              , NULL  ,   0x10 }, // slim, 2006/01/26
171*bf1b3cb1SVictor Perevertkin 
172*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVDRAM GSA-4084N"              , NULL  ,   0x10 }, // slim, 2005/12/21
173*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVDRAM GMA-4084N"              , NULL  ,   0x10 }, // slim, 2006/02/15
174*bf1b3cb1SVictor Perevertkin     { "", "HP DVD Writer 550s"                     , NULL  ,   0x10 }, // slim, 2006/05/08
175*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVDRAM GSA-T10N"               , NULL  ,   0x10 }, // slim, 2006/07/26
176*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVDRAM_GSA-T10N"               , NULL  ,   0x10 }, // slim, 2006/07/26
177*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVD+-RW GSA-T11N"              , NULL  ,   0x10 }, // slim, 2006/07/25
178*bf1b3cb1SVictor Perevertkin 
179*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVD-ROM GDR8160B"              , NULL  ,   0x10 }, // hh  , 2001/10/12
180*bf1b3cb1SVictor Perevertkin     { "", "COMPAQ DVD-ROM GDR8160B"                , NULL  ,   0x10 }, // hh  , 2001/11/08
181*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVD-ROM GDR8161B"              , NULL  ,   0x10 }, // hh  , 2002/07/19
182*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVD-ROM GDR8162B"              , NULL  ,   0x10 }, // hh  , 2003/04/22
183*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVD-ROM GDR8163B"              , NULL  ,   0x10 }, // hh  , 2004/05/19
184*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVD-ROM GDR8164B"              , NULL  ,   0x10 }, // hh  , 2005/06/29
185*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVD-ROM GDRH10N"               , NULL  ,   0x10 }, // hh  , 2006/03/07
186*bf1b3cb1SVictor Perevertkin 
187*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVD-ROM GDR8081N"              , NULL  ,   0x10 }, // slim, 2001/08/27
188*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVD-ROM GDR8082N"              , NULL  ,   0x10 }, // slim, 2003/02/02
189*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVD-ROM GDR8083N"              , NULL  ,   0x10 }, // slim, 2003/02/02
190*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVD-ROM GDR8085N"              , NULL  ,   0x10 }, // slim, 2005/11/10
191*bf1b3cb1SVictor Perevertkin 
192*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST RW/DVD GCC-4080N"              , NULL  ,   0x10 }, // slim, 2001/08/21
193*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST RW/DVD_GCC-4080N"              , NULL  ,   0x10 }, // slim,
194*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST RW/DVD GCC-4160N"              , NULL  ,   0x10 }, // slim, 2002/04/08
195*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST RW/DVD GCC-4240N"              , NULL  ,   0x10 }, // slim, 2002/04/26
196*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST RW/DVD GCC-4241N"              , NULL  ,   0x10 }, // slim, 2003/04/07
197*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST RW/DVD_GCC-4241N"              , NULL  ,   0x10 }, // slim, 2004/03/07
198*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST RW/DVD GCC-4242N"              , NULL  ,   0x10 }, // slim, 2003/12/21
199*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST RW/DVD GCC-4246N"              , NULL  ,   0x10 }, // slim, 2005/05/23
200*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST BD-RE  GBW-H10N"               , NULL  ,   0x10 }, // hh  , 2006/06/27
201*bf1b3cb1SVictor Perevertkin 
202*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVDRAM GSA-4083N"              , NULL  ,   0x10 }, // hh  , 2006/05/17
203*bf1b3cb1SVictor Perevertkin     { "", "HL-DT-ST DVD+-RW GWA4083N"              , NULL  ,   0x10 }, // hh  , 2006/06/05
204*bf1b3cb1SVictor Perevertkin 
205*bf1b3cb1SVictor Perevertkin     { "", "PIONEER DVD-RW  DVR-106D"               , NULL  ,   0x10 }, // hh  , ?
206*bf1b3cb1SVictor Perevertkin     { "", "ASUS DVD-RW DRW-0402P"                  , NULL  ,   0x10 }, // hh  , ?
207*bf1b3cb1SVictor Perevertkin 
208*bf1b3cb1SVictor Perevertkin 
209*bf1b3cb1SVictor Perevertkin     // Sony sourced some drives from LG also....
210*bf1b3cb1SVictor Perevertkin 
211*bf1b3cb1SVictor Perevertkin     { NULL      , NULL                             , NULL  ,   0x00 },
212*bf1b3cb1SVictor Perevertkin };
213*bf1b3cb1SVictor Perevertkin 
214*bf1b3cb1SVictor Perevertkin 
215*bf1b3cb1SVictor Perevertkin GUID ClassGuidQueryRegInfoEx = GUID_CLASSPNP_QUERY_REGINFOEX;
216*bf1b3cb1SVictor Perevertkin GUID ClassGuidSenseInfo2     = GUID_CLASSPNP_SENSEINFO2;
217*bf1b3cb1SVictor Perevertkin GUID ClassGuidWorkingSet     = GUID_CLASSPNP_WORKING_SET;
218*bf1b3cb1SVictor Perevertkin GUID ClassGuidSrbSupport     = GUID_CLASSPNP_SRB_SUPPORT;
219*bf1b3cb1SVictor Perevertkin 
220*bf1b3cb1SVictor Perevertkin #ifdef ALLOC_DATA_PRAGMA
221*bf1b3cb1SVictor Perevertkin     #pragma data_seg()
222*bf1b3cb1SVictor Perevertkin #endif
223