3.2.7 EMRI_DEVMODE Example 2

This section provides an example of the EMRI_DEVMODE record (section 2.2.3.5).

 00065280:                        03 00 00 00 40 04 00 00 
 00065290:5C 00 5C 00 70 00 72 00 69 00 6E 00 74 00 65 00 
 000652A0:72 00 73 00 65 00 72 00 76 00 65 00 72 00 5C 00 
 000652B0:43 00 61 00 6E 00 6F 00 6E 00 20 00 42 00 75 00 
 000652C0:62 00 62 00 6C 00 65 00 2D 00 4A 00 00 00 00 00 
 000652D0:01 04 00 06 DC 00 64 03 43 EF 80 07 02 00 01 00 
 000652E0:EA 0A 6F 08 64 00 01 00 0F 00 FD FF 02 00 01 00 
 000652F0:FD FF 02 00 01 00 4C 00 65 00 74 00 74 00 65 00 
 00065300:72 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 00065310:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 00065320:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 00065330:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 00065340:00 00 00 00 01 00 00 00 00 00 00 00 02 00 00 00 
 00065350:02 00 00 00 01 00 00 00 01 01 00 00 00 00 00 00 
 00065360:00 00 00 00 00 00 00 00 00 00 00 00 44 49 4E 55 
 00065370:22 00 00 01 44 02 18 00 59 D8 B0 99 00 00 00 00 
 00065380:00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 
 00065390:00 00 00 00 00 00 00 00 08 00 00 00 01 00 00 00 
 000653A0:03 00 01 00 01 00 02 00 02 00 00 00 00 00 00 00 
 000653B0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 000653C0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 000653D0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 000653E0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 000653F0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 00065400:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 00065410:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 00065420:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 00065430:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 00065440:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 00065450:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 00065460:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 00065470:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 00065480:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 00065490:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 000654A0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 000654B0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 000654C0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 000654D0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 000654E0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 000654F0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 00065500:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 00065510:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 00065520:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 00065530:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 00065540:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 00065550:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 00065560:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 00065570:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 00065580:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 00065590:00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 
 000655A0:00 00 00 00 00 00 00 00 00 01 00 00 53 4D 54 4A 
 000655B0:18 00 00 00 4E 55 4A 42 00 00 01 00 34 00 00 00 
 000655C0:00 00 00 00 00 00 00 00 08 01 00 00 53 4D 54 4A 
 000655D0:00 00 00 00 14 00 00 00 00 00 F4 00 43 00 61 00 
 000655E0:6E 00 6F 00 6E 00 20 00 42 00 75 00 62 00 62 00 
 000655F0:6C 00 65 00 2D 00 4A 00 65 00 74 00 20 00 42 00 
 00065600:4A 00 43 00 2D 00 35 00 30 00 00 00 49 6E 70 75 
 00065610:74 42 69 6E 00 4D 41 4E 55 41 4C 00 52 45 53 44 
 00065620:4C 4C 00 55 6E 69 72 65 73 44 4C 4C 00 50 61 70 
 00065630:65 72 53 69 7A 65 00 4C 45 54 54 45 52 00 52 65 
 00065640:73 6F 6C 75 74 69 6F 6E 00 53 54 41 4E 44 41 52 
 00065650:44 00 4D 65 64 69 61 54 79 70 65 00 53 54 41 4E 
 00065660:44 41 52 44 00 43 6F 6C 6F 72 4D 6F 64 65 00 43 
 00065670:4D 59 4B 32 34 00 48 61 6C 66 74 6F 6E 65 00 48 
 00065680:54 5F 50 41 54 53 49 5A 45 5F 41 55 54 4F 00 4F 
 00065690:72 69 65 6E 74 61 74 69 6F 6E 00 50 4F 52 54 52 
 000656A0:41 49 54 00 00 00 00 00 00 00 00 00 00 00 00 00 
 000656B0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 000656C0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

ulID (0x00000003=EMRI_DEVMODE)

cjSize (0x00000440)

Devmode (variable)

...

...

ulID (4 bytes): 0x00000003 specifies the type of the record, EMRI_DEVMODE, from the RecordType enumeration (section 2.1.1).

cjSize (4 bytes): 0x00000440 is the size, in bytes, of all the data in the record, including private driver-specific data. Each EMFSPOOL record is aligned to a multiple of 4 bytes.

Devmode (variable): A complete, variable-length _DEVMODE structure ([MS-RPRN] section 2.2.2.1).


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

dmDeviceName ("\\printerserver\Canon Bubble-J") (68 bytes)

...

...

...

dmSpecVersion (0x0401)

dmDriverVersion (0x0600)

dmSize (0x00DC)

dmDriverExtra (0x0364)

dmFields (0x0780EF43)

dmOrientation (0x0001)

dmPaperSize (0x0001)

dmPaperLength (0x0AEA)

dmPaperWidth (0x086F)

dmScale (0x0064)

dmCopies (0x0001)

dmDefaultSource (0x000F)

dmPrintQuality (0xFFFD)

dmColor (0x0002)

dmDuplex (0x0001)

dmDeviceName (68 bytes): "\\printerserver\Canon Bubble-J" specifies the text name of the printer, truncated to fit into a 32-character Unicode string with null terminator.

dmSpecVersion (2 bytes): 0x0401 specifies the version of the initialization data specification on which the structure is based.

dmDriverVersion (2 bytes): 0x0600 specifies the version assigned by the implementer of the printer driver.

dmSize (2 bytes): 0x00DC specifies the size, in bytes, of the fixed-length portion of the _DEVMODE structure, which does not include the private driver-specific data that follows.

dmDriverExtra (2 bytes): 0x0364 specifies size, in bytes, of the variable-length driver-specific data that follows the fixed-length portion of the _DEVMODE structure.

dmFields (4 bytes): 0x0780EF43 specifies whether certain fields of the _DEVMODE structure are initialized. If a field is initialized, its corresponding bit is set; otherwise the bit is clear.

dmOrientation (2 bytes): 0x0001 specifies Portrait page orientation.

dmPaperSize (2 bytes): 0x0001 specifies Letter size paper, 8 1/2 x 11 inches.

dmPaperLength (2 bytes): 0x0AEA specifies the length of the printable area, in tenths of a millimeter.

dmPaperWidth (2 bytes): 0x086F specifies the width of the printable area, in tenths of a millimeter.

dmScale (2 bytes): 0x0064 specifies the factor by which the printed output is meant to be scaled, in percent.

dmCopies (2 bytes): 0x0001 specifies the number of copies to be printed.

dmDefaultSource (2 bytes): 0x000F specifies a device-specific value for the paper source, from which the output bin can be determined.

dmPrintQuality (2 bytes): 0xFFFD specifies medium-resolution printing quality with a predefined value. If this field contained a positive value, it would specify the dots per inch resolution of the device.

dmColor (2 bytes): 0x0002 specifies color printing.

dmDuplex (2 bytes): 0x0001 specifies single-sided printing.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

dmYResolution (0xFFFD)

dmTTOption (0x0002)

dmCollate (0x0001)

dmFormName ("Letter") (68 bytes)

...

...

...

...

reserved0 (0x0000)

reserved1 (0x00000000)

reserved2 (0x00000000)

reserved3 (0x00000000)

dmNup (0x00000001)

reserved4 (0x00000000)

dmYResolution (2 bytes): 0xFFFD specifies the vertical resolution of the printer, in dots per inch.

dmTTOption (2 bytes): 0x0002 specifies that TrueType fonts be downloaded as soft fonts.

dmCollate (2 bytes): 0x0001 specifies that collation be used when printing multiple copies.

dmFormName (68 bytes): "Letter" specifies the name of the printer form, padded with nulls to fit into a 32-character Unicode string with null terminator.

reserved0 (2 bytes): 0x0000 is not used.

reserved1 (4 bytes): 0x00000000 is not used.

reserved2 (4 bytes): 0x00000000 is not used.

reserved3 (4 bytes): 0x00000000 is not used.

dmNup (4 bytes): 0x00000001 specifies that the print server handles the layout of multiple logical pages on one physical page.

reserved4 (4 bytes): 0x00000000 is not used.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

dmICMMethod (0x00000002)

dmICMIntent (0x00000002)

dmMediaType (0x00000001)

dmDitherType (0x00000101)

reserved5 (0x00000000)

reserved6 (0x00000000)

reserved7 (0x00000000)

reserved8 (0x00000000)

dmDriverExtraData (116 bytes) 

...

...

...

dmICMMethod (4 bytes): 0x00000002 specifies that Image Color Management be handled by the system on which the Page Description Language (PDL) data is generated.

dmICMIntent (4 bytes): 0x00000002 specifies that color matching is optimized for contrast.

dmMediaType (4 bytes): 0x00000001 specifies that plain-paper media type is used.

dmDitherType (4 bytes): 0x00000101 specifies a printer driver-specific value for the type of dithering.

reserved5 (4 bytes): 0x00000000 is not used.

reserved6 (4 bytes): 0x00000000 is not used.

reserved7 (4 bytes): 0x00000000 is not used.

reserved8 (4 bytes): 0x00000000 is not used.

dmDriverExtraData (116 bytes): A block of private data, of a size specified by the dmDriverExtra field, which is understandable only by the printer driver.