Hi all,
I find out, why there is no nvme before win7. It is because of a missing function in storport.sys (before win7).
Debugview gives the message:
STORMINI: NVMeEnumNumaCores: Failed to retrieve number of group.
And this belongs to nvmeInit.c from Openfabrics source for nvme.sys, Version1.3:
/* Find out the current group topology in the system */
Status = StorPortGetActiveGroupCount(pAE, &pRMT->NumGroup);
if (pRMT->NumGroup == 0 || Status != STOR_STATUS_SUCCESS) {
StorPortDebugPrint(INFO, "NVMeEnumNumaCores: Failed to retrieve number of group.\n");
return (FALSE);
}
https://docs.microso...ctivegroupcount
StorPortGetActiveGroupCount function
Windows versionAvailable in Windows 7 and later versions of the Windows operating systems.
So, as long as you make use(^^) of this function, always the same error, even when you compile nvme.sys
for Win 2003, the crazy^^ compiler still makes call to this not existing function before win7,
have a nice day
Dietmar
EDIT: I see, that even in version 1.2 for nvme from openfabrics they make use of the function StorPortGetHighestNodeNumber.
Also this function arrives first time in win7 for storport.sys. This means, the source code for nvme.sys from openfabrics can only be used for operating system from win7 and newer.
EDIT2:
May be, I dont understand something: Dependency Walker shows between nvme.sys and storport.sys in XP
exakt the same dependencies as in Win7 between nvme.sys but different storport (from win7) there.
This looks like, that all the functions I told above are not important, because they are only internal used in nvme.sys and storport.sys but not for the connection between nvme.sys and storport. In this case, nvme for xp with the source code from openfabrics seems still possible. The relations between storport and ntoskrnl are very different in xp and win 7.
When my thoughts are correct this means, that I found the exact crash point in nvme
in XP(NVMeEnumNumaCores: Failed to retrieve number of group), but still not the reason for that crash.
EDIT3:
I changend the storport.sys in win7 against the storport from win2003.
Dependency Walker shows, that all dependencies are also ok.
But when I reboot the compi, the nvme harddisk is gone.
Even the logfile shows, that nvme.sys and storport.sys are loaded,
is this the same behavior as on XP. It simply means, that ntoskrnl from win7
used more dependencies with original storport(win7) than storport from 2003 can give.
This is the no go^^ for the nvme.sys from openfabrics for XP, win2003, vista.
I tested all. Only storport from win7 works, but ONLY for win7.