[cifs-protocol] [REG:116102514847681]: [MS-PAR] Q 1/2 3.1.4.2.7 RpcAsyncInstallPrinterDriverFromPackage; performing additional validation steps

Edgar Olougouna edgaro at microsoft.com
Mon Nov 14 07:23:35 UTC 2016


Andreas,

Here is and update to this set of questions:

a) what sections of the control file needs to be inspected?
Windows print system uses the underlying SetupAPI's to conduct the installation and inspection of the INF files. For example, the inf file is passed to SetupDiSetDeviceInstallParams function which is documented in MSDN. 
What we advise is to just validate that the file references are robust should be sufficient. 
There does not seem to be an existing requirement noted for validating a driver installation control file. Only that any files referenced in either the manifest or the control file be found.

	"Validate that any files referenced in the driver installation control file specified by the print client or in the printer driver manifest in the driver package specified by the print client are present on the print server; otherwise, the server MUST return ERROR_FILE_NOT_FOUND."

b) what sections of the manifest file needs to be inspected?

The existing documentation says:

	"the driver package specified by the printer client contains exactly one printer driver manifest for the printer driver and the printer driver manifest conforms to the implementation-specific rules governing the format of printer driver manifests"

Our implementation and interpretation of this paragraph is that the print server should be checking that the entire printer driver manifest file conforms to the schema, and not any particular sections.

INF Files
https://msdn.microsoft.com/en-us/windows/hardware/drivers/install/inf-files
Overveiw of INF files
https://msdn.microsoft.com/en-us/windows/hardware/drivers/install/overview-of-inf-files

c) whether there is any requirement for checksum verification of the Microsoft catalog file (driver.cat)?

Both Windows Client and Server do the checksum validation before installing the driver.

d) At what step should the server generate the Print Driver Package (cabinet file)? 

Can you elaborate on this question? Isn't the driver package stored when the driver is added to the print server?

Thanks,
Edgar

-----Original Message-----
From: Edgar Olougouna 
Sent: Tuesday, October 25, 2016 9:32 AM
To: Andreas Schneider <asn at samba.org>
Cc: cifs-protocol at lists.samba.org; MSSolve Case Email <casemail at microsoft.com>
Subject: RE: [REG:116102514847681]: [MS-PAR] Q 1/2 3.1.4.2.7 RpcAsyncInstallPrinterDriverFromPackage; performing additional validation steps

Andreas,
I will research this and follow-up.

Thanks,
Edgar

-----Original Message-----
From: Bryan Burgin 
Sent: Tuesday, October 25, 2016 10:06 AM
To: Andreas Schneider <asn at samba.org>
Cc: cifs-protocol at lists.samba.org; MSSolve Case Email <casemail at microsoft.com>
Subject: [REG:116102514847681]: [MS-PAR] Q 1/2 3.1.4.2.7 RpcAsyncInstallPrinterDriverFromPackage; performing additional validation steps

[+dochelp on bcc]
[+casemail]
[Changed title to reflect single issue...was "[MS-PAR] Some questions Printer Driver handling"]

Use this thread for the first of your two issues:

116102514847681: [MS-PAR] Q 1/2 3.1.4.2.7 RpcAsyncInstallPrinterDriverFromPackage; performing additional validation steps:

3.1.4.2.7 RpcAsyncInstallPrinterDriverFromPackage

The print server SHOULD perform the following additional validation steps:

{
    This secion describes some steps but it lacks serveral details:

    Which sections of the printer-driver control file (inf-file, passed by
    pzInfPath) need to be inspected?

    If the driver is a v4 driver, which section of the Manifest (additional
    inf-File) need to be inspected?

    Also package-aware drivers ship with a Microsoft Catalog file
    (driver.cat) for each printer-driver control (inf-File). Does the Print
    server need to verify the catalog file and make sure the checksums in the
    Catalog files match to the files?

    It also isn't described at which step the Print Driver Package (cabinet
    file) needs to be generated.
}

An engineer from the protocols team will contact you soon on each of these.

Bryan

-----Original Message-----
From: Bryan Burgin 
Sent: Tuesday, October 25, 2016 8:01 AM
To: 'Andreas Schneider' <asn at samba.org>
Cc: cifs-protocol at lists.samba.org
Subject: RE: [MS-PAR] Some questions Printer Driver handling

[-dochelp]

Hi Andreas,

Do not reply to THIS e-mail.  I will make two cases for this issue and start two new threads; one each for each of your two issues.

The cases I made are:

116102514847681: [MS-PAR] Q 1/2 3.1.4.2.7 RpcAsyncInstallPrinterDriverFromPackage; performing additional validation steps
116102514847712: [MS-PAR] Q 2/2 3.1.4.2.9 RpcAsyncGetCorePrinterDrivers (Opnum 64); Where does someone find a copy of CorePrinterDrivers

An engineer from the protocols team will contact you soon on each of these.

Bryan

-----Original Message-----
From: Andreas Schneider [mailto:asn at samba.org] 
Sent: Monday, October 24, 2016 11:36 PM
To: Interoperability Documentation Help <dochelp at microsoft.com>
Cc: cifs-protocol at lists.samba.org
Subject: [MS-PAR] Some questions Printer Driver handling

Hello Dochelp!


I have some questions about printer driver handling in [MS-PAR]

3.1.4.2.7 RpcAsyncInstallPrinterDriverFromPackage

The print server SHOULD perform the following additional validation steps:

{
    This secion describes some steps but it lacks serveral details:

    Which sections of the printer-driver control file (inf-file, passed by
    pzInfPath) need to be inspected?

    If the driver is a v4 driver, which section of the Manifest (additional
    inf-File) need to be inspected?

    Also package-aware drivers ship with a Microsoft Catalog file
    (driver.cat) for each printer-driver control (inf-File). Does the Print
    server need to verify the catalog file and make sure the checksums in the
    Catalog files match to the files?

    It also isn't described at which step the Print Driver Package (cabinet
    file) needs to be generated.
}


3.1.4.2.9 RpcAsyncGetCorePrinterDrivers (Opnum 64)

{
    The protocol assumes that we have a copy of the CorePrinterDrivers if the
    client requests them. Where does someone find a copy of those drivers so
    he can put it to the driver store of his 3rd-party implementation?
}


Can you please clarify?


Thank for your help!


Best regards,


Andreas

-- 
Andreas Schneider                   GPG-ID: CC014E3D
Samba Team                             asn at samba.org
www.samba.org




More information about the cifs-protocol mailing list