Legacy AddReg issue

The attestation signing of the windows driver packages in Partner Center fails with the following error message:
Error 1303 in honeywell_cdc.inf,: Found legacy AddReg operation defining co-installers (CoInstallers32).

Failed INF validation. INF did not pass Desktop validation (InfVerif /k).
Below is the content where we were getting the issue


HKR,,CoInstallers32,0x00010000, \ "wdfcoinstaller01009.dll,WdfCoInstaller", \ "acmfccoi.dll,acm_force_com_co_installer"


I tried following the AddService as suggested in Microsoft portal . Below is the code snippet. I was able to sign the driver files without any issues after including Addservice but however there seems missing functionality after including AddService. (Attached screenshot below from previous version of driver using legacy AddReg operation defining co-installers 32) And this force com port functionality seems to be missing in the current version after the legacy AddReg fix .
Is it executing "acmfccoi.dll,acm_force_com_co_installer" properly as i am unable to see Force COM feature in the property page.
Kindly let me know if anything's missing in the below code snippet

AddService=%AcmServiceName%, 0x00000002, Acm_AddService

ServiceType = 1
StartType = 3
ErrorControl = 1
ServiceBinary = %12%\honeywell_cdc.sys
CoInstallers32 = "wdfcoinstaller01009.dll,WdfCoInstaller","acmfccoi.dll,acm_force_com_co_installer"


First: You'd be better of posting this in the NTDEV forum, because it's not really a WinDbg question. But... I'll start off the answers here.

There's no way for us to know what your app is doing, or what "force COM port" is; So there's no way we're going to be able to help you with that unless you tell us a LOT more about the technical details underlying it.

Next, you're adding the WDF co-installer, and asking for KMDF V1.9 (I think) or later. KMDF is serviced via Windows update, and KMDF V1.9 shipped pre-installed on Windows 7. So, unless you need to support systems older than Windows 7 (and, goodness, even Windows 7 is "ancient" by now) you can just remove the entire CoInstaller section, which will make your INF much cleaner, simpler, and eliminate your issues.

MSFT is no longer going to sign a driver that includes a coinstaller (the WDF ones don't count in this check), so there will be no way to include this line in a driver INF at all:
CoInstallers32 = "wdfcoinstaller01009.dll,WdfCoInstaller","acmfccoi.dll,acm_force_com_co_installer"

The MSFT portal guidance isn't suggesting you move the coinstaller line to the service section, it's suggesting you actually move the logic within the binary into a service. Moving that line to the services section doesn't work anyway, as you noted.

Thank you for the pointer. So there are two entries in original case

step 1 - write a windows service that loads both dlls and invoke above two apis from it
step 2 - remove coinstaller32 section and run that service before installing original driver
step 3 - load those two dlls and invoke those api from within driver initialization or any other section
Kindly let me know if i am in the correct path to call a function from the dll in inf by following above steps

No you're not going to use those existing DLLs at all. You have to implement something entirely new if you want to do something here.