web services for devices install printers scanners l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Web Services for Devices Install: Printers & Scanners PowerPoint Presentation
Download Presentation
Web Services for Devices Install: Printers & Scanners

Loading in 2 Seconds...

play fullscreen
1 / 44

Web Services for Devices Install: Printers & Scanners - PowerPoint PPT Presentation


  • 1010 Views
  • Uploaded on

Web Services for Devices Install: Printers & Scanners. Mike Fenelon Software Developer Digital Documents, Platform and Solutions Team MFenelon @ microsoft.com Microsoft Corporation. Printing with Web Services for Devices. Printer Installation Step-By-Step. Spooler.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Web Services for Devices Install: Printers & Scanners' - reed


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
web services for devices install printers scanners

Web Services for Devices Install:Printers & Scanners

Mike Fenelon

Software DeveloperDigital Documents, Platform and Solutions Team

MFenelon @ microsoft.com

Microsoft Corporation

printer installation step by step
Printer Installation Step-By-Step

Spooler

PnP-Printer Class Installer

WSD Port

Monitor

1

8

8

11

11

Function Discovery (FD)

Print Device PDO

9

9

4

4

3

7

7

Print Service FDO

WS-Discovery Provider

IPBusEnumerator

6

6

5

5

2

10

User-Mode Enabled Bus Enumerator

(UMBus)

step 1 wsd port monitor initialization
Step 1- WSD Port Monitor Initialization

Spooler starts up

WSD Port Monitor (WSDMon) queries FD for all existing WSD print devices and creates the appropriate ports

Any new devices found while the spooler wasn’t running will also kick off PnP installation for the Print Object (Step 9)

WSDMon will also register for notifications on the correct FD category to receive future device notifications

Spooler

WSD Port

Monitor

1

Function Discovery (FD)

steps 2 3 printer announcement and discovery
Steps 2 & 3 – Printer Announcement and Discovery

Printer announces presence on the network by a WS-Discovery “Hello” message or responds to a Probe message from user opening Computers & Devices

WS-Discovery provider recognizes the device and publishes it to Function Discovery (FD)

Device Instance in FD contains all the basic device Metadata

Device enabled for install if it contains PnP-X related metadata

Function Discovery (FD)

3

WS-Discovery Provider

2

steps 4 5 notification from fd and devnode creation

User-Mode Enabled Bus Enumerator (UMBus)

Function Discovery (FD)

IPBusEnumerator

Steps 4 & 5 – Notification from FD and Devnode Creation

From Within Computers & Devices the User adds/installs discovered device to Association Database

IPBusEnum gets a notification of the newly associated Network Device

IPBusEnum reads data from the new instance and uses the COM interface to the User-Mode Enabled Bus Enumerator (UMBus) to tell UMBus to create a new WS Print Service DevNode

4

5

step 6 create printer service devnode

User-Mode Enabled Bus Enumerator (UMBus)

Scan Service FDO

Step 6 – Create Printer Service Devnode
  • UMBus creates a File Device Object (FDO) for the WS-based Printer Service
  • This FDO has a HardwareID & CompatibleId based on data from the Device Relationship Metadata
    • <pnpx:HardwareId>
    • <pnpx:CompatibleId>

6

steps 7 8 print service pnp notification to fd and wsdmon

Spooler

WSD Port

Monitor

Function Discovery (FD)

Print Service FDO

Steps 7 & 8 – Print Service PnP Notification to FD and WSDMon

FD gets PnP notification of the new WS-Printer Service device object

FD adds device to the correct category/subcategory and creates notification which is picked up by WSDMon

8

7

step 9 getmetadata

Spooler

WSD Port

Monitor

User-Mode Enabled Bus Enumerator (UMBus)

Step 9 – GetMetadata
  • WSDMon activates the WS PrintProxy via the FD function instance and gets needed information from the device
    • Uses GetMetadata calls or Print Service methods
    • Gets device 1284 ID and determines port name
  • WSDMon calls UMBus with info needed to create a Print Device Physical Device Object (PDO) in RAW mode
  • This gets PnP started installing the Print Object in the spooler (Printers and Faxes folder)

9

steps 10 11 pdo creation and driver install

PnP-Printer Class Installer

Print Device PDO

User-Mode Enabled Bus Enumerator (UMBus)

Steps 10 & 11 – PDO Creation and Driver Install

UMBus creates a Print Device PDO

This PDO contains the Hardware ID, PortName, PrinterName, Location and comment field of the associated printer

PnP searches installed INFs to find an INF that matches

If no INF is found the Found New Hardware Wizard (FNHM) starts

If an INF is found (or selected in the FNHW) PnP invokes the associated class installer, in this case the Printer Class Installer

Install continues just like local PnP using the supplied information from the Print Device PDO to complete the installation

11

10

printing operation step by step

WSD Port

Monitor

Driver

App

Queue View

Printing Operation Step By Step

A

B

D

C

E

F

G

Spooler

step a b driver initialization

Driver

WSD Port

Monitor

Step A & B – Driver Initialization
  • Bi-di enabled Driver queries device for configuration
    • Driver uses Bi-di schema to request device configuration
  • WSD Port Monitor uses GetPrinterElements operation to retrieve data from printer
  • WSDMon converts XML data to Bi-di Schema responses

A

B

step c application prints a document

App

WSD Port

Monitor

Step C – Application prints a document

Application uses DevCaps to get accurate device capabilities

Application formats the document based on current device capabilities

Application begins rendering the document

C

step d e wsd port monitor prints a document

WSD Port

Monitor

Step D & E – WSD Port Monitor prints a document
  • WSDMon sends CreatePrintJob operation to prepare device for print data
    • CreatePrintJob response contains device JobID
  • On first WritePort call WSDMon creates SendDocument opreation
    • Device JobID and
    • Job data transferred as part of SendDocument operation using MTOM

E

D

step f g jobendstate event and rich status

Queue View

WSD Port

Monitor

Step F & G – JobEndState Event and Rich Status

Printer send JobEndState event when the print job finishes

WSD Port Monitor creates Rich Status notification based on information in the event

Job Status in Queue View is updated after SetJob call

F

G

scanner installation step by step

WIA Service

WSD Scan

Driver

Function Discovery (FD)

Scan Service FDO

WS-Discovery Provider

IPBusEnumerator

User-Mode Enabled Bus Enumerator

(UMBus)

Scanner Installation Step By Step

1

8

4

4

3

6

6

5

5

2

step 1 wia service and scan class driver initialization

WIA

Service

WSD Scan

Driver

Function Discovery (FD)

Step 1 – WIA Service and Scan ClassDriver Initialization
  • WIA Service starts up or User starts a WIA application
  • WIA Service queries PnP for all existing Scan devices and creates the appropriate objects (Step 8)

1

steps 2 3 scanner announcement and discovery

Function Discovery (FD)

WS-Discovery Provider

Steps 2 & 3 – Scanner Announcement and Discovery
  • Scanner announces presence on the network by a WS-Discovery “Hello” message or responds to a Probe message from user opening Computers & Devices
  • WS-Discovery provider recognizes the device and publishes it to Function Discovery (FD)
  • Device Instance in FD contains all the basic device Metadata
  • Device enabled for install if it contains PnP-X related metadata

3

2

steps 4 5 notification from fd and devnode creation20

User-Mode Enabled Bus Enumerator (UMBus)

Function Discovery (FD)

IPBusEnumerator

Steps 4 & 5 – Notification from FD and Devnode Creation
  • From Within Computers & Devices the User adds/installs discovered device to Association Database
  • IPBusEnum gets a notification of the newly associated Network Device
  • IPBusEnum reads data from the new instance and uses the COM interface to the User-Mode Enabled Bus Enumerator (UMBus) to tell UMBus to create a new WS Print Service DevNode

4

5

steps 6 create scanner service devnode

User-Mode Enabled Bus Enumerator (UMBus)

Scan Service FDO

Steps 6 – Create Scanner Service Devnode
  • UMBus creates a File Device Object (FDO) for the WS-based Scanner Service
  • This FDO has a HardwareID & CompatibleId based on data from the Device Relationship Metadata
    • <pnpx:HardwareId>
    • <pnpx:CompatibleId>

6

step 7 pnp notification and wsd scan driver object initialization

WIA Service

WSD Scan

Driver

Scan Service FDO

Step 7 – PnP Notification and WSD Scan Driver Object Initialization
  • WIA Service gets PnP notification of the new WS-Scanner Service device object
  • WIA creates a unique identifier for the device
  • WSD Scan Driver instance is loaded for the new scanner
  • Scan Service Function Instance is activated and the ScanProxy DLL is loaded

Scanner installation is complete!

7

step a pc registers with scanner

WIA Service

WSD Scan

Driver

Step A – PC Registers with Scanner
  • At scan object creation the PC creates scan destination(s) in the scan device
    • Assigns device a unique identifier
    • Subscribes for ScanAvailableEvent with wscn:ScanDestinations extension operation to set display name for current PC
    • Receives scan context from device

A

steps b c user initiates scan

WIA Service

WSD Scan

Driver

Steps B & C – User Initiates Scan
  • User selects destination from device display panel
  • User presses scan button
  • Device sends a ScanAvailableEvent to selected PC
    • Event contains scanner identifier and scan context

C

Note: this could also be initiated from an application on the PC if scanner doesn’t have LCD or multi-PC capability

B

step d client scans from device

WIA Service

WSD Scan

Driver

Step D – Client Scans From Device
  • Client uses CreateScanJob & RetreiveImage operations to initiate scan and retrieve scan data
    • Scan ticket in CreateScanJob operation contains desired scanning parameters
    • Scan data is retrieved as part of the RetrieveImage operation response in any form using MTOM

D

getprinterelements request example
GetPrinterElements Request Example

<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/"

xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:wprt="http://schemas.microsoft.com/windows/2005/05/wdp/print">

<SOAP:Header>

<wsa:Action>

http://schemas.microsoft.com/windows/2005/05/wdp/print/GetPrinterElements

</wsa:Action>

--- Header removed for Brevity ---

</SOAP:Header

<SOAP:Body>

<wprt:GetPrinterElementsRequest>

<wprt:RequestedElements>

<wprt:Name>wprt:PrinterConfiguration</wprt:Name> </wprt:RequestedElements>

</wprt:GetPrinterElementsRequest >

</SOAP:Body>

</SOAP:Envelope>

getprinterelements response example
GetPrinterElements Response Example

<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/"

xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:wprt="http://schemas.microsoft.com/windows/2005/05/wdp/print">

<SOAP:Header>

<wsa:Action>

http://schemas.microsoft.com/windows/2005/05/wdp/print/GetPrinterElementsResponse

</wsa:Action>

--- Header removed for Brevity ---

</SOAP:Header

<SOAP:Body>

<wprt:GetPrinterElementsResponse>

.

.

.

</wprt:GetPrinterElementsResponse>

</SOAP:Body>

</SOAP:Envelope>

createprintjob request example
CreatePrintJob Request Example

<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/"

xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:wprt="http://schemas.microsoft.com/windows/2005/05/wdp/print">

<SOAP:Header>

<wsa:Action>

http://schemas.microsoft.com/windows/2005/05/wdp/print/CreatePrintJob

</wsa:Action>

--- Header removed for Brevity ---

</SOAP:Header

<SOAP:Body>

<wprt:CreatePrintJobRequest>

.

.

.

</wprt:CreatePrintJobRequest>

</SOAP:Body>

</SOAP:Envelope>

createprintjob response example
CreatePrintJob Response Example

<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/"

xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:wprt="http://schemas.microsoft.com/windows/2005/05/wdp/print">

<SOAP:Header>

<wsa:Action>

http://schemas.microsoft.com/windows/2005/05/wdp/print/CreatePrintJobResponse

</wsa:Action>

--- Header removed for Brevity ---

</SOAP:Header

<SOAP:Body>

<wprt:CreatePrintJobResponse>

.

.

.

</wprt:CreatePrintJobResponse>

</SOAP:Body>

</SOAP:Envelope>

senddocument request example
SendDocument Request Example

mime-version: 1.0

Content-Type: multipart/related;

type=application/xop+xml;

boundary=“--=_NextPart_123_321_0000000.3E9F5D”;

start=”<OperationRequest>”;

startinfo=application/soap+xml

----=_NextPart_123_321_0000000.3E9F5D

Content-Type: application/xop+xml; type=application/soap_xop+xml charset=UTF-8

Content-Transfer-Encoding: binary

Content-ID: <OperationRequest>

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope

xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"

xmlns:wsdp="http://schemas.xmlsoap.org/ws/2004/08/devprof"

xmlns:wsa="http://schemas.xmlsoap.org/ws/2003/03/addressing"

xmlns:wprt="http://schemas.microsoft.com/windows/2005/05/wdp/print"

xmlns:xmlmime=’http://www.w3.org/2004/11/xmlmime’

xmlns:xop=’http://www.w3.org/2004/08/xop/include’

soap:encodingStyle='http://www.w3.org/2002/12/soap-encoding' >

<soap:Header>

<wsa:To>uuid:DeviceUUID</wsa:To>

<wsdp:ServiceId>uri:IdofThisService</wsdp:ServiceId>

<wsa:Action>

http://schemas.microsoft.com/windows/2005/05/wdp/print/SendDocument

</wsa:Action>

<wsa:MessageID>uuid:UniqueMsgId</wsa:MessageID>

</soap:Header>

senddocument request example cont
SendDocument Request Example (cont.)

<soap:Body>

<wprt:SendDocumentRequest>

<wprt:JobId>IdFromCreateJobRequest</wprt:JobId>

<wprt:DocumentDescription>

<wprt:DocumentId>DocIdNumber</wprt:DocumentId>

<wprt:Compression>None</wprt:Compression>

<wprt:DocumentFormat>

application/octet-stream</wprt:DocumentFormat>

<wprt:DocumentName>Example.xml</wprt:DocumentName>

</wprt:DocumentDescription>

<wprt:LastDocument>true</wprt:LastDocument>

<wprt:DocumentData xmlmime:contentType=”application/postscript”>

<xop:Include href=”cid:000001” />

</wprt:DocumentData>

</wprt:SendDocumentRequest>

</soap:Body>

</soap:Envelope>

----=_NextPart_123_321_0000000.3E9F5D

Content-Type: application/postscript;

Content-Transfer-Encoding: binary

Content-ID: <000001>

Document PDL Data

----=_NextPart_123_321_0000000.3E9F5D--

senddocument response example
SendDocument Response Example

<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/"

xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:wprt="http://schemas.microsoft.com/windows/2005/05/wdp/print">

<SOAP:Header>

<wsa:Action>

http://schemas.microsoft.com/windows/2005/05/wdp/print/SendDocumentResponse

</wsa:Action>

--- Header removed for Brevity ---

</SOAP:Header

<SOAP:Body>

<wprt:SendDocumentResponse/>

</SOAP:Body>

</SOAP:Envelope>

subscribe request example
Subscribe Request Example

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"

xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"

xmlns:wse="http://schemas.xmlsoap.org/ws/2004/08/eventing"

xmlns:wsdp="http://schemas.xmlsoap.org/ws/2005/05/devprof"

xmlns:wscn="http://schemas.microsoft.com/windows/2005/08/wdp/scan">

<soap:Header>

<wsa:Action>http://schemas.xmlsoap.org/ws/2004/08/eventing/Subscribe</wsa:Action>

<wsdp:ServiceId>uri:scn</wsdp:ServiceId>

--- Headers removed for Brevity ---

</soap:Header>

<soap:Body>

<wse:Subscribe>

<wse:Delivery Mode="http://schemas.xmlsoap.org/ws/2004/08/eventing/DeliveryModes/Push">

<wse:NotifyTo>

<wsa:Address>

http://157.56.92.87:5357/872b563f-2832-49eb-8e80-a721fe7a7fd9

</wsa:Address>

</wse:NotifyTo>

</wse:Delivery>

<wse:Expires>PT10M</wse:Expires>

<wse:Filter Dialect="http://schemas.xmlsoap.org/ws/2005/05/devprof/Action">

http://schemas.microsoft.com/windows/2005/08/wdp/scan/ScanAvailableEvent

</wse:Filter>

<wscn:ScanDestinations>

<wscn:ScanDestination>

<wscn:ClientDisplayName>Scan to MFenelon2L</wscn:ClientDisplayName>

<wscn:ClientContext>Scan</wscn:ClientContext>

</wscn:ScanDestination>

<wscn:ScanDestination>

<wscn:ClientDisplayName>Scan for Print to MFenelon2L</wscn:ClientDisplayName>

<wscn:ClientContext>ScanToPrint</wscn:ClientContext>

</wscn:ScanDestination>

</wscn:ScanDestinations>

</wse:Subscribe>

</soap:Body>

</soap:Envelope>

subscribe scanavailableevent response example
Subscribe (ScanAvailableEvent) Response Example

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"

xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"

xmlns:wse="http://schemas.xmlsoap.org/ws/2004/08/eventing"

xmlns:wsdp="http://schemas.xmlsoap.org/ws/2005/05/devprof"

xmlns:wscn="http://schemas.microsoft.com/windows/2005/08/wdp/scan">

<soap:Header>

<wsa:Action>http://schemas.xmlsoap.org/ws/2004/08/eventing/SubscribeResponse</wsa:Action>

--- Headers removed for Brevity ---

</soap:Header>

<soap:Body>

<wse:SubscribeResponse>

<wse:SubscriptionManager>

<wsa:Address>http://157.56.88.113:80/TestDevice</wsa:Address>

<wsa:ReferenceProperties>

<wsdp:ServiceId>uri:scn</wsdp:ServiceId>

<wse:Identifier>uuid:0c27676b-e507-4837-9512-49d64640991d</wse:Identifier>

</wsa:ReferenceProperties>

</wse:SubscriptionManager>

<wse:Expires>PT9M59.9531289S</wse:Expires>

<wscn:DestinationResponses>

<wscn:DestinationResponse>

<wscn:ClientContext>Scan</wscn:ClientContext>

<wscn:DestinationToken>113527a8-0908-4222-bd6c-9c95d302c454</wscn:DestinationToken>

</wscn:DestinationResponse>

<wscn:DestinationResponse>

<wscn:ClientContext>ScanToPrint</wscn:ClientContext>

<wscn:DestinationToken>6fcbbc0f-c035-41ca-a912-f6961a2e2257</wscn:DestinationToken>

</wscn:DestinationResponse>

</wscn:DestinationResponses>

</wse:SubscribeResponse>

</soap:Body>

</soap:Envelope>

scanavailableevent example
ScanAvailableEvent Example

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"

xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"

xmlns:wscn="http://schemas.microsoft.com/windows/2005/08/wdp/scan">

<soap:Header>

<wsa:To>

http://157.56.92.87:5357/872b563f-2832-49eb-8e80-a721fe7a7fd9

</wsa:To>

<wsa:Action>

http://schemas.microsoft.com/windows/2005/08/wdp/scan/ScanAvailableEvent

</wsa:Action>

</soap:Header>

<soap:Body>

<wscn:ScanAvailableEvent>

<wscn:ClientContext>Scan</wscn:ClientContext>

<wscn:ScanIdentifier>

a74dc73c-34b6-4e99-a724-c006f4625b68

</wscn:ScanIdentifier>

</wscn:ScanAvailableEvent>

</soap:Body>

</soap:Envelope>

createscanjob request example
CreateScanJob Request Example

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"

xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"

xmlns:wsdp="http://schemas.xmlsoap.org/ws/2005/05/devprof"

xmlns:wscn="http://schemas.microsoft.com/windows/2005/08/wdp/scan">

<soap:Header>

<wsa:To>http://157.56.88.113:80/TestDevice</wsa:To>

<wsa:Action>

http://schemas.microsoft.com/windows/2005/08/wdp/scan/CreateScanJob

</wsa:Action>

<wsdp:ServiceId>uri:scn</wsdp:ServiceId>

--- Headers removed for Brevity ---

</soap:Header>

<soap:Body>

<wscn:CreateScanJobRequest>

<wscn:ScanIdentifier>

a74dc73c-34b6-4e99-a724-c006f4625b68</wscn:ScanIdentifier>

<wscn:DestinationToken>

113527a8-0908-4222-bd6c-9c95d302c454</wscn:DestinationToken>

<wscn:ScanTicket>

<wscn:JobDescription>

<wscn:JobName>GetImage from ScanAvailableEvent</wscn:JobName>

<wscn:JobOriginatingUserName>

MFenelon</wscn:JobOriginatingUserName>

<wscn:JobInformation>Scanning from platen..</wscn:JobInformation>

</wscn:JobDescription>

createscanjob request example cont
CreateScanJob Request Example (Cont.)

<wscn:DocumentParameters>

<wscn:Format>exif</wscn:Format>

<wscn:ImagesToTransfer>1</wscn:ImagesToTransfer>

<wscn:InputSource>Platen</wscn:InputSource>

<wscn:InputSize>

<wscn:InputMediaSize>

<wscn:Width>1000</wscn:Width>

<wscn:Height>1000</wscn:Height>

</wscn:InputMediaSize>

</wscn:InputSize>

<wscn:Rotation>0</wscn:Rotation>

<wscn:MediaSides>

<wscn:MediaFront>

<wscn:ColorProcessing>RGB24</wscn:ColorProcessing>

<wscn:Resolution>

<wscn:Width>200</wscn:Width>

</wscn:Resolution>

</wscn:MediaFront>

</wscn:MediaSides>

</wscn:DocumentParameters>

</wscn:ScanTicket>

</wscn:CreateScanJobRequest>

</soap:Body>

</soap:Envelope>

createscanjob response example
CreateScanJob Response Example

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"

xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"

xmlns:wsdisco="http://schemas.xmlsoap.org/ws/2005/04/discovery"

xmlns:wsdp="http://schemas.xmlsoap.org/ws/2005/05/devprof"

xmlns:wscn="http://schemas.microsoft.com/windows/2005/08/wdp/scan">

<soap:Header>

<wsa:Action>

http://schemas.microsoft.com/windows/2005/08/wdp/scan/CreateScanJobResponse

</wsa:Action>

--- Headers removed for Brevity ---

</soap:Header>

<soap:Body>

<wscn:CreateScanJobResponse>

<wscn:JobId>1</wscn:JobId>

<wscn:JobToken>b5838c21-63a1-4e99-a724-b459218cae7f</wscn:JobToken>

<wscn:ImageInformaiton>

.

.

</wscn:ImageInformation>

<wscn:DocumentFinalParameters>

.

.

</wscn:DocumentFinalParameters>

</wscn:CreateScanJobResponse>

</soap:Body>

</soap:Envelope>

retrieveimage request example
RetrieveImage Request Example

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"

xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"

xmlns:wsdp="http://schemas.xmlsoap.org/ws/2005/05/devprof"

xmlns:wscn="http://schemas.microsoft.com/windows/2005/08/wdp/scan">

<soap:Header>

<wsa:Action>

http://schemas.microsoft.com/windows/2005/08/wdp/scan/RetrieveImage

</wsa:Action>

<wsdp:ServiceId>uri:scn</wsdp:ServiceId>

--- Headers removed for Brevity ---

</soap:Header>

<soap:Body>

<wscn:RetrieveImageRequest>

<wscn:JobId>1</wscn:JobId>

<wscn:JobToken>b5838c21-63a1-4e99-a724-b459218cae7f</wscn:JobToken>

<wscn:DocumentDescription>

<wscn:DocumentName>ScannedImage001.JPG</wscn:DocumentName>

</wscn:DocumentDescription>

</wscn:RetrieveImageRequest>

</soap:Body>

</soap:Envelope>

retrieveimage response example
RetrieveImage Response Example

Content-Type: multipart/related;

boundary=4aa7d814-adc1-47a2-8e1c-07585b9892a4;

type="application/xop+xml";

start="<14629f74-2047-436c-8046-5cac76d280fc@uuid>";

start-info=application/soap+xml; charset="utf-8”

mime-version: 1.0

--4aa7d814-adc1-47a2-8e1c-07585b9892a4

content-type: application/xop+xml; type="application/soap+xml"; charset="utf-8"

content-transfer-encoding: binary

content-id: <14629f74-2047-436c-8046-5cac76d280fc@uuid>

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"

xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"

xmlns:wscn="http://schemas.microsoft.com/windows/2005/08/wdp/scan">

<soap:Header>

<wsa:Action>

http://schemas.microsoft.com/windows/2005/08/wdp/scan/RetrieveImageResponse

</wsa:Action>

</soap:Header>

<soap:Body>

<wscn:RetrieveImageResponse>

retrieveimage response example cont
RetrieveImage Response Example (Cont.)

<wscn:ScanData>

<XOP:Include xmlns:XOP="http://www.w3.org/2004/08/xop/include"

href="cid:1c696bd7-005a-48d9-9ee9-9adca11f8892@uuid"/>

</wscn:ScanData>

</wscn:RetrieveImageResponse>

</soap:Body>

</soap:Envelope>

--4aa7d814-adc1-47a2-8e1c-07585b9892a4

content-type: application/dib

content-transfer-encoding: binary

content-id: <1c696bd7-005a-48d9-9ee9-9adca11f8892@uuid>

....Binary Image data for Scan.....

--4aa7d814-adc1-47a2-8e1c-07585b9892a4--