Jump to content

WInXP and driver code 10 debugging. NVME on Z390, with clean install is working, with older not..


ruthan

Recommended Posts

I not working NVME driver for WinXP - yeah it exists:
https://sourceforge.net/projects/nvme-for-windows-2003-server/


  I made it working with clean install, but i have problem to make it working with my tuned install.

Does someone here understand *.inf files? 
Only known difference working install is that is english Win XP SP3 and not working in Non English (Czech).

Inf file dont looks complex, but there are some localization things. Its possible to simply discover which files are needed for installation? I could try to copy them from install here its working.

If understand it correctly:
1) it using Nvme86.cat + Nvme.sys which are part of installation package.
2) After that there are add some logging with System32\IoLogMsg.dll - i have this file in my system.
3) add its creating couple of registry keys.. - there could be problem that key is not existing or with permission.

I guess that there is now any tool which would just print in which step of inf file processing problem happens?

nvme.inf

Link to comment
Share on other sites


The INF is just installation instructions. If it shows as installed in Device Manager, then the installation is complete. You have a Code 10 on an installed driver, so there is no reason to think the INF failed.

Did you install the update in the readme? KB943545.

 I'd run depends on the nvme.sys file. And it looks to install a service, does this service exist?

And also, since I've never used non-English Windows, and do not know otherwise, are there things such as localised drivers? For example, is it a problem that the vars used in an INF are in English? Such as those in nvme_Service_Inst or the registry keys in msi_addreg or Parameters sections?

Link to comment
Share on other sites

9 minutes ago, Tripredacus said:

And also, since I've never used non-English Windows, and do not know otherwise, are there things such as localised drivers? For example, is it a problem that the vars used in an INF are in English? Such as those in nvme_Service_Inst or the registry keys in msi_addreg or Parameters sections?

No, the system language is not important, the driver is always in English, all the necessary registry keys are also English. In the driver, only lines with the name of the device can be localized.

Link to comment
Share on other sites

Ok service is here, is running i dont now.
 Service manager show it : C:\WINDOWS\system32\DRIVERS\nvme.sys  Start type - is boot, in service.msc is not, probably as other Hardware based ones. When i check device manager hidden devices nvme is not here. Update: Ok it is its probaly using different name is see there: secnvme device.

Quote

Did you install the update in the readme? KB943545.

No, as far i know its only for Win 2k3, clean was from some update image.

 

Secnvme was from other driver, which i tried, i removed it.. and checked worked instance, there is no hidden device manager device. But im still getting same error.

 

Edited by ruthan
Link to comment
Share on other sites

I "love" Virtual machine leftovers.. 

I have no patch for whole string:
ClassGUID={4D36E97B-E325-11CE-BFC1-08002BE10318}

 but for 4D36E97B-E325-11CE-BFC1-08002BE10318 i have lots of hits and lots of them are ClassGUID values.

 I guess that important are in:
 HKEY_LOCAL_MACHINE\XP-Install\ControlSet001\Enum\PCI\VEN_1B4B&DEV_9172&SUBSYS_B0001458&REV_11\4&35ef6156&0&00E7, ClassGUID, {4D36E97B-E325-11CE-BFC1-08002BE10318}    - im opening registry from other Windows instance. Other control set, i could probably ignore.
I dunno what exactly is CurrentControlSet2? 
HKEY_LOCAL_MACHINE\XP-Install\CurrentControlSet2\Control\Class\{4D36E97B-E325-11CE-BFC1-08002BE10318}  ?

   I see them as part of all installed Storage devices, as virtual cd drivers and sata controllers - these are working fine. There are: 
ClassGUID - {4D36E97B-E325-11CE-BFC1-08002BE10318} 
Driver {4D36E97B-E325-11CE-BFC1-08002BE10318}\0003

  Thre is no UpperFilter item, anything about Vmware etc., what i have to search for or do next?
  

 

 

Here is registry keys report (just download it and open as html - Dropbox is not clever enough):

https://www.dropbox.com/s/l6iacufvpa1tors/rwf8A1F.html?dl=0

Link to comment
Share on other sites

The exact string I posted is (obviously) what is in the .inf, in the Registry, it is the SCSIAdapter class:
https://docs.microsoft.com/en-us/windows-hardware/drivers/install/system-defined-device-setup-classes-available-to-vendors

In the Registry you need to check:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E97B-E325-11CE-BFC1-08002BE10318 }

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E97B-E325-11CE-BFC1-08002BE10318 }

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\Class\{4D36E97B-E325-11CE-BFC1-08002BE10318 }

There is no such thing as CurrentControlSet2 that I know of in "normal operation", it must be an artifact of heaven knows which program or operation. :dubbio:

But of course the UpperFilters was just something to check, not necessarily the actual culprit.

Quick reminder about ControlSets:
https://msfn.org/board/topic/181451-are-the-ssd-disks-windows-2000-compatible/page/2/?tab=comments#comment-1182267

Check which ControlSet is in use according to:
HKEY_LOCAL_MACHINE\SYSTEM\Select

 

Sorry to be blunt, but from the fact that you have a ControlSet up to 008 it means that what you call "tuned" install I would personally call "botched beyond repair" or "with so many cruft accumulated that it is hopeless".

jaclaz

Link to comment
Share on other sites

I hard to find something, if i dont know for what im looking. Maybe this registry output will help:
https://www.dropbox.com/s/x3ad46o0tsg3i46/Reg.7z?dl=0
  O guess that there should be anything secret it control sets, so i can export you more of registry if it will help. Some with other reports, if you want to now more about my machine..

Used controlset is default no value set, what means i guess number 1.

 I dont know that is rule to create new control set, it could be something quite normal, or not means anything too bad.

Installation is very old really tuned, it remember lots of hardware, but i cleaned it quite well and its still ruling, because im everytime learning more about it and how to fix things. I heard that argument reainstall it lots of time, but in 95% of problems, im able to fix it and it has to do nothing to do with exact problem. I tried some reinstalls in the past.. i will never have enough time, knowledge and good enough memory etc, to do same setup - its for life, i even visualized this install couple of times, but until we will have good virtualized 3D driver for XP, or KVM on Windows or i will migrate to Linux, i have to keep it now physical HW.

   BTW here is main issue is not my install but that Windows device installation or initialization has not proper trace or logging, its miracle that MS could live with it until today - because of that there is lots of shady guides how to solve one problem, because error message usually can mean much more things that for other programs.. . There should be some way to know why that magic generic error actually happened.. and after would make sense to discuss if this something which is really hard to solve..

Link to comment
Share on other sites

No particular ideas/suggestions, here is what a "normal" install Select key should look like:

Quote

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\Select]
"Current"=dword:00000001
"Default"=dword:00000001
"Failed"=dword:00000000
"LastKnownGood"=dword:00000002

Having more than 2 controlsets (ControlSet001 and Controlset002) - while not necessarily an issue - is a sign that the system has been fiddled with (improperly), possibly several times and/or experienced serious corruption issues.

Personally I am all about NOT reinstalling unneededly, to give you a single anecdata point I am writing this from an XP (SP2, and yes I know) that was put (transferred not installed) on this machine in 2008, and that was actually originally installed on a completely different machine in 2004 or so.

As you say, you can solve 95% of the issues, evidently it is in the 5% remaining that the excess controlsets and other generic Registry weirdness reside.

I believe that a system cannot boot at all without a "Current" control set selected, so you should have some value in:
HKEY_LOCAL_MACHINE\SYSTEM\Select\Current

and that one is the controlset which is in use when the machine is booted, all the others are not used at all and are irrelevant to the isue at hand.

jaclaz

Link to comment
Share on other sites

13 hours ago, RainyShadow said:

Maybe @ruthan should stop "removing" drivers and begin uninstalling them instead :P

Maybe it is only a language translation glitch, and he meant "remove by uninstalling". :unsure:

Isn't it fun that an Italian and a Bulgarian can debate on the exactness of the English terminology used by a Czech?  :buehehe:

jaclaz

Link to comment
Share on other sites

On 6/10/2020 at 3:46 PM, RainyShadow said:

Maybe @ruthan should stop "removing" drivers and begin uninstalling them instead :P

 I would like that life in age when are developers good enough to have installers which would clean leftovers - it was Win98 / XP thing, if thing that NVME has some installer it has not its just inf and couple of files.

   That ControlSet2 - could be my old backup, or just created by some tool.. if not part MS scheme, we can ignore it. Which control set is used i will post later.

  So far no clues, so my guess is that problem could be in 2 things:
- Installation of driver was somehow botched. I dunno if code could be error of installation, or its error of drivers start => installation has be completed successfully.
- Installation ended fine, but service is not starting for some reason. I checked working install here is service is state of running, on not working is stopped - through service manager - i can start it, but it dont simply fix code 10 on devices - i guess that because of Start type of service is boot, it has to be running fine as part of start up. 
    I never know too much about this, but some services, needed some other services to run, be above to run properly, maybe this is good place to start. I also said that debug sucks, what is true, but its true that i never checked Event log, its only tool which i know for such things, but would except that there would be much more tools, which i simply dont know.

    

 

Or and current and default controlSet is 7, BTW is there way and its good idea delete some one them and make it number 1?

  There is second NVME driver which i need to uninstall what is the proper way?
 https://www.dropbox.com/s/nb7migik7lolr3k/Storport_NVME Daniel.7z?dl=0

 

Link to comment
Share on other sites

On 6/11/2020 at 5:50 PM, ruthan said:

Or and current and default controlSet is 7, BTW is there way and its good idea delete some one them and make it number 1?

I just found out these are created when you select "Last known good blablabla..." from the F8 boot menu.

You better not delete them, just in case.

On 6/11/2020 at 5:50 PM, ruthan said:

There is second NVME driver which i need to uninstall what is the proper way?
 https://www.dropbox.com/s/nb7migik7lolr3k/Storport_NVME Daniel.7z?dl=0

This thing doesn't seem to have an uninstall section (just like the first driver).

I tried it in a VM, when i selected Uninstall in Device manager, it just removed the device. All files and services were left running...

Then i manually deleted the secnvme and secnvmeF services, and on the next boot i got BSOD with errorr 7B, lol.

"Last good config" saved me from a lenghty manual fixing :P

 

Anyways, don't remove anything yet.

I will tell you later what to try (if you want to).

gtg now :D

 

 

Ok, here is what to do:

Boot the working XP a few times. Do a couple restarts and shutdowns. This is to make sure that all pending changes (if any) are applied, the system boots fine, and the configuration is recognized as "good".

Boot some Windows PE with a working registry editor included (i used Registry Editor PE).

Load the registry of the working XP. Check the values of HKEY_LOCAL_MACHINE\_REMOTE_SYSTEM_\Select\Current and HKEY_LOCAL_MACHINE\_REMOTE_SYSTEM_\Select\Default (red part may be different depending on how you loaded the hive) - both values should be the same. Right-click on HKEY_LOCAL_MACHINE\_REMOTE_SYSTEM_\ControlSet00x key which has the same number, and export it to a .REG file. Unload the registry, close regedit.

Make a backup of the \WINDOWS\system32\config folder of the crashing XP. Next load its registry in regedit. Check the values of HKEY_LOCAL_MACHINE\_REMOTE_SYSTEM_\Select\Current and HKEY_LOCAL_MACHINE\_REMOTE_SYSTEM_\Select\Default (red part may be different depending on how you loaded the hive) - both values should be the same. Right-click on HKEY_LOCAL_MACHINE\_REMOTE_SYSTEM_\ControlSet00x key which has the same number, and export it to a .REG file.

Check what ControlSet00x keys you already have and pick the next free number, i.e. if your keys go to ControlSet011, you pick ControlSet012. Minimize regedit for now.

Open the exported .REG file in a text editor (Notepad). Search and replace all occurences of the original \ControlSet00x\ with the new \ControlSet00x\ . Save the modified file.

Go back to regedit with the loaded crashing registry. Import the .REG file. In HKEY_LOCAL_MACHINE\_REMOTE_SYSTEM_\Select\ edit the values of both Current and Default to the new number. Save, exit, reboot.

Now try booting the crashing XP.

 

Edited by RainyShadow
added export of old reg.
Link to comment
Share on other sites

Thanks for info.

Quote

I just found out these are created when you select "Last known good blablabla..." from the F8 boot menu.

  Hmm, so they are not really something like sing of super broken system, im trying this options, if get into state, when its not working normally.. sometimes its working and its much faster that restore image.

  Im that Registry block above? Its all for NVME device removal or for some ControllSet cleaun up?

 I managed to remove that NVME driver, here is how to, yeah it was again some :*Filter" thing:
- search for LowerFilters, delete the secnvmeF line only, not whole parent key
- delete secnvmeF service.
- delete secnvme service.
- delete related INF (look inside oem*.inf) from \Windows\Inf - its probably not totally neccesary, its only solving recognition of device after reboot, but would create only create some stub device, without driver.
- delete secnvme.sys and secnvmeF.sys from \Windows\System32\Drivers
- uninstall device from Device Manager and restart immediately // Probably dont neccesary, because devices are added by start of services, i thing..

So now im "clean", i can debug why more promising driver is not working. BTW regarding my system, if you know some good unitility to create some system report, i will create it for sure. 
  I though about if have something special in my system, for sure i have some games DRM systems - like Starforce, Securom etc.. + some companies USB Token drivers stuff, but by i would bet my money, on some other problem file some registry mising key permissions etc. Which driver is needing.
  Im will check EventLog, for some clues.

Link to comment
Share on other sites

I told you what to try. It may sound long and complicated, but is really just a few minutes work. Too lazy?

You will not find a magic utility to do the job.

 

P.S. you don't mention removing the driver from critical devices...

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...