[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH] Conditionally use IoOpenDriverRegistryKey
IoOpenDriverRegistryKey is not available in Server 2016 and Windows 10 before 1803. Use a conditinal to modify the RegistryOpenParametersKey function to use the correct API to open the parameters key. Set '#define VERIFIER_REG_ISOLATION' when compiling for Server 2025, and do not include this definition when compiling to include support for Server 2016. Signed-off-by: Owen Smith <owen.smith@xxxxxxxxx> --- src/common/registry.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/common/registry.c b/src/common/registry.c index 3f45a23..211c177 100644 --- a/src/common/registry.c +++ b/src/common/registry.c @@ -100,11 +100,38 @@ RegistryOpenParametersKey( OUT PHANDLE Key ) { +#ifdef VERIFIER_REG_ISOLATION return IoOpenDriverRegistryKey(RegistryDriverObject, DriverRegKeyParameters, DesiredAccess, 0, Key); +#else + HANDLE ServiceKey; + NTSTATUS status; + + status = RegistryOpenKey(NULL, &RegistryPath, DesiredAccess, &ServiceKey); + if (!NT_SUCCESS(status)) + goto fail1; + + status = RegistryOpenSubKey(ServiceKey, "Parameters", DesiredAccess, Key); + if (!NT_SUCCESS(status)) + goto fail2; + + RegistryCloseKey(ServiceKey); + + return STATUS_SUCCESS; + +fail2: + Error("fail2\n"); + + RegistryCloseKey(ServiceKey); + +fail1: + Error("fail1 %08x\n", status); + + return status; +#endif } NTSTATUS -- 2.44.0.windows.1
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |