This device cannot find enough free resources that it can use. (Code 12)

We are trying to update our Windows OS from Win10 Enterprise to Win10 IoT Enterprise (21H2). Our kernel driver which has worked fine for many years on Win10 Enterprise is now failing on Win10 IoT Enterprise (device cannot find enough free resources (code 12). Same HW same driver package. Anyone has seen something similar?

Thanks,
Rony

So, you're saying it's the exact same system, the exact same device(s), and the exact same driver package. The only thing that changed is the OS version?

That's... odd. Can you see in Device Manager where the issue is? Or, is does your driver log the specific reason for the failure (if it gets called at all)??

Yes it's the same exact HW and driver package, we are just swapping the hard disk. I see the error in the Device Manager GUI, but no errors in the Windows system event log. One thing that struck me is the speed the OS is booting up. We don't have all the software components installed (like virus check, etc.) but it is fast.

What bus is the device connected to? PCI? USB? Other?
Device manager has a 'resources by type' view - that might help, also if your device shows up in the gui the events tab might help.,

Thanks Mark I will check. The device is connected to PCI.

Same BIOS, right? You didn't change UEFI versions/types/capabilities when you switched disk drives by any chance?

You should be able to see the resource conflict in Device Manager... This DOES sound very unusual, though, I admit.

Yes same BIOS Peter.

I'll try to compare resources between the working Win10 image and the non working Win10 IoT.

Just to "reassure" you, if that's even the right word :slight_smile: : There are no kernel-mode differences between Windows IoT Enterprise and Windows Enterprise. They are absolutely, positively, the exact same operating system.

And, again, just to "reassure" you: I have never seen a driver work on the Desktop flavor of Windows and not work on the matching IoT version of Windows. Here at OSR, we do MANY drivers that will eventually be hosted on Windows IoT (usually Enterprise). We never do our development or even our Unit Testing on the IoT SKU. We just use a matching Desktop version.

It could be that I'm not telling you anything you don't already know. But "just in case" I wanted you to know how things are SUPPOSED to work.

Thanks Peter that is really good to know. I actually wasn't sure if our old driver package is compatible with IoT. So you did reassured me.

I've been trying to compare the Device Manager information from the working HD and the newer non working HD (Win10 IoT). One difference I see is the non working HD has a few pci-to-pci bridge entries under IO space. The working HD does not.

BTW, why do some resource lines show the left icon sort of faded out?

We ended up resolving the issue and as suspected it was not an issue with the device driver. The failing Win10 IoT HD I was first given was an OS install on a fresh HD plus the software for the CTL. When we tried taking an existing working Win10 HD and updating it to Win10 IoT the device driver worked fine.

Thanks for following-up and letting the community know the outcome.

That IS a very strange outcome, and I'm not sure I understand how an upgrade vs a fresh install would make a difference. But, in any case, if your problem is solved to your satisfaction that's what counts.

Thanks again for sharing your problem and its ultimate resolution.

Yes the situation has been resolved but not really solved. My guess is we don't have all the proper software packages needed for a fresh install. The master Win10 HD was created quite a long time ago and new hard disks are just using a copy of the master HD image.

We ran into a new problem in our attempt to upgrade from Win10 Enterprise to Win10 IoT Enterprise. Maybe you have some insight to this issue.

All our devices appear to working fine except one. When we plug this device and powerup the Windows logo appears and the little circle rotates and that's as far as we get. I get the same results with and without our driver installed. I connected with WinDbg and saw many errors "CapID 104c Unknown Capability" when trying to read the pci configuration registers for this device and WinDbg became unresponsive. There is no capability id of 0x104C (it's actually the vendor ID) but there is a capability ID of 0x10 (PCIe). And sure enough when we removed capability 0x10 the OS booted fine. Again, this is an old device which we have been using with no issue with Win10. Any ideas?