Description
We have spent some time trying to understand how WinPmem interacts with Microsofts persistent memory driver.
(Some random docs mentioning it: HCI, SQL, PS)
Unfortunately, WinPmem completely ignores it, removes the service, and does not restore it.
Also, if the driver is already loaded, the service cannot be stopped, and WinPmem fails to run.
This should only be an issue on Windows 10 or newer.
C:\>sc qc pmem
[SC] QueryServiceConfig SUCCESS
SERVICE_NAME: pmem
TYPE : 1 KERNEL_DRIVER
START_TYPE : 3 DEMAND_START
ERROR_CONTROL : 1 NORMAL
BINARY_PATH_NAME : \SystemRoot\System32\drivers\pmem.sys
LOAD_ORDER_GROUP :
TAG : 0
DISPLAY_NAME : Microsoft persistent memory disk driver
DEPENDENCIES :
SERVICE_START_NAME :
I would suggest, instead of making WinPmem test different cases if the driver is loaded or not, and trying to restore it, I would just rename the WinPmem service to winpmem
instead of pmem
.
Also, a command-line argument for the service name would also be nice, as an optional extra. But not a high priority.
Also, WinPmem as a name, is that for physical memory? Because imo, that's assumed, in my mind. Pmem means persistent memory. But that's not what I'm creating this issue for! 😁