Andreas, A core driver needs to ship as part of a driver package that has a dependency upon it. Based on details in the following references (please read through below), the list of available core drivers on the print server would have been provisioned as a result of driver packages being installed on the server.
SetupGetInfDriverStoreLocation function https://msdn.microsoft.com/en-us/library/windows/hardware/ff552194(v=vs.85).aspx The driver store is a trusted location of inbox and third-party driver packages. This means that before a driver can be installed it must first be injected into the driver store, this process is called staging. The driver store is located under C:\Windows\System32\DriverStore\FileRepository. Windows keeps a copy of every driver you install in a place called the Driver Store. It is located in "C:\Windows\System32\DriverStore\FileRepository". Unidrv.dll and Pscript5.dll can be found in ntprint.inf that is pre-installed on the OS. Package-Aware Print Drivers https://msdn.microsoft.com/en-us/windows/hardware/drivers/print/package-aware-print-drivers * If the files in the driver package are unique and are not listed in other print driver packages, use the PackageAware keyword in the INF. * If the files in the driver package are shared with files in other print driver packages: o Move the shared files into a separate core driver. o Use the PackageAware keyword and the CoreDriverDependencies keyword to refer to this separate core driver. This is necessary to avoid file version conflicts during various remote installation scenarios. Package-Aware Print Drivers that Share Files https://msdn.microsoft.com/en-us/windows/hardware/drivers/print/package-aware-print-drivers-that-share-files When more than one print driver package shares driver files, the shared files must be isolated into a core driver. For example, Unidrv is a collection of files that many print drivers use, so Unidrv is a core driver. In Windows Vista, the reference to Ntprint.inf is no longer necessary because Unidrv is packaged as a core driver and is referred to by its globally unique identifier (GUID). When using core drivers, do not use the DataSection keyword, but instead refer to this section from the CoreDriverSections keyword. Core print package files are listed in the following table. Core File GUID UNIDRV {D20EA372-DD35-4950-9ED8-A6335AFE79F0} PSCRIPT {D20EA372-DD35-4950-9ED8-A6335AFE79F1} PCLXL {D20EA372-DD35-4950-9ED8-A6335AFE79F2} PLOTTER {D20EA372-DD35-4950-9ED8-A6335AFE79F4} XPSDRV {D20EA372-DD35-4950-9ED8-A6335AFE79F5} More than one core driver section can be referenced; for example: CoreDriverSections="{GUID1}, SectionName1, SectionName2", "{GUID2}, SectionName3" Writing Core Drivers https://msdn.microsoft.com/en-us/windows/hardware/drivers/print/writing-core-drivers For example, in Ntprint.inf, the Unidrv core driver file definition is shown in the following example: Microsoft.NTx86] "{D20EA372-DD35-4950-9ED8-A6335AFE79F0}" = {D20EA372-DD35-4950-9ED8-A6335AFE79F0}, {D20EA372-DD35-4950-9ED8-A6335AFE79F0} [{D20EA372-DD35-4950-9ED8-A6335AFE79F0}] CopyFiles=UNIDRV,PJLMON.DLL,@TTFSUB.GPD,@LOCALE.GPD,@MSXPSINC.GPD [UNIDRV] ; Unidrv files and pjlmon sections follow... With this definition, a print driver INF file can refer to core driver files by using the CoreDriverSections keyword as shown in the previous sample. It is important to note that a core driver must retain compatibility with earlier versions. Because more than one driver may use the core driver, it must continue to work with existing drivers that depend on it when it is updated. The core driver must ship as part of the driver package. Using Core Drivers https://msdn.microsoft.com/windows/hardware/drivers/print/using-core-drivers Print driver writers can use core drivers that they have written by listing the core model GUID in the model section of the INF, and using the PackageAware and CoreDriverSections keywords. . . . [DriverInstall_Vista] [email protected] CoreDriverSections="{D20EA372-DD35-4950-9ED8-A6335AFE79F0},UNIDRV.OEM,UNIDRV_DATA,TTFSUB.OEM", "{GUID1},MANUFACTURER_CORE" The package install section must also be added, and list all core driver dependencies: [PrinterPackageInstallation.x86] PackageAware=TRUE CoreDriverDependencies={D20EA372-DD35-4950-9ED8-A6335AFE79F0},{GUID1} Thanks, Edgar -----Original Message----- From: Edgar Olougouna Sent: Tuesday, October 25, 2016 11:33 AM To: Andreas Schneider <[email protected]> Cc: [email protected]; MSSolve Case Email <[email protected]> Subject: RE: [REG:116102514847712]: [MS-PAR] Q 2/2 3.1.4.2.9 RpcAsyncGetCorePrinterDrivers (Opnum 64); Where does someone find a copy of CorePrinterDrivers Andreas, I will be looking in this as well and will follow-up. Thanks, Edgar -----Original Message----- From: Bryan Burgin Sent: Tuesday, October 25, 2016 10:06 AM To: Andreas Schneider <[email protected]> Cc: [email protected]; MSSolve Case Email <[email protected]> Subject: [REG:116102514847712]: [MS-PAR] Q 2/2 3.1.4.2.9 RpcAsyncGetCorePrinterDrivers (Opnum 64); Where does someone find a copy of CorePrinterDrivers [+dochelp on bcc] [+casemail] [Changed title to reflect single issue...was "[MS-PAR] Some questions Printer Driver handling"] Use this thread for the second of your two issues: 116102514847712: [MS-PAR] Q 2/2 3.1.4.2.9 RpcAsyncGetCorePrinterDrivers (Opnum 64); Where does someone find a copy of CorePrinterDrivers 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? } 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' <[email protected]> Cc: [email protected] 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:[email protected]] Sent: Monday, October 24, 2016 11:36 PM To: Interoperability Documentation Help <[email protected]> Cc: [email protected] 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 [email protected] www.samba.org _______________________________________________ cifs-protocol mailing list [email protected] https://lists.samba.org/mailman/listinfo/cifs-protocol
