|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH xenbus 5/8] Create interface to retrieve XEN driver 'Parameters' key
From: Paul Durrant <pdurrant@xxxxxxxxxx>
Subsequent patches will need to query a parameter. This patch simply adds the
interface.
Signed-off-by: Paul Durrant <pdurrant@xxxxxxxxxx>
---
src/xen/driver.c | 36 ++++++++++++++++++++++++++++++++++--
src/xen/driver.h | 5 +++++
2 files changed, 39 insertions(+), 2 deletions(-)
diff --git a/src/xen/driver.c b/src/xen/driver.c
index 4670539b488a..3f126eefa8f2 100644
--- a/src/xen/driver.c
+++ b/src/xen/driver.c
@@ -60,6 +60,7 @@
typedef struct _XEN_DRIVER {
PLOG_DISPOSITION XenDisposition;
PLOG_DISPOSITION QemuDisposition;
+ HANDLE ParametersKey;
HANDLE UnplugKey;
HANDLE MemoryKey;
} XEN_DRIVER, *PXEN_DRIVER;
@@ -94,6 +95,30 @@ __DriverSafeMode(
return (*InitSafeBootMode > 0) ? TRUE : FALSE;
}
+static FORCEINLINE VOID
+__DriverSetParametersKey(
+ IN HANDLE Key
+ )
+{
+ Driver.ParametersKey = Key;
+}
+
+static FORCEINLINE HANDLE
+__DriverGetParametersKey(
+ VOID
+ )
+{
+ return Driver.ParametersKey;
+}
+
+HANDLE
+DriverGetParametersKey(
+ VOID
+ )
+{
+ return __DriverGetParametersKey();
+}
+
static FORCEINLINE VOID
__DriverSetUnplugKey(
IN HANDLE Key
@@ -504,6 +529,8 @@ DllInitialize(
if (!NT_SUCCESS(status))
goto fail4;
+ __DriverSetParametersKey(ParametersKey);
+
status = LogReadLogLevel(ParametersKey,
"XenLogLevel",
&LogLevel);
@@ -584,8 +611,6 @@ DllInitialize(
if (!NT_SUCCESS(status))
goto fail12;
- RegistryCloseKey(ParametersKey);
-
RegistryCloseKey(ServiceKey);
Trace("<====\n");
@@ -641,6 +666,7 @@ fail5:
Driver.XenDisposition = NULL;
RegistryCloseKey(ParametersKey);
+ __DriverSetParametersKey(NULL);
fail4:
Error("fail4\n");
@@ -672,6 +698,7 @@ DllUnload(
{
HANDLE MemoryKey;
HANDLE UnplugKey;
+ HANDLE ParametersKey;
Trace("====>\n");
@@ -699,6 +726,11 @@ DllUnload(
RegistryCloseKey(UnplugKey);
__DriverSetUnplugKey(NULL);
+ ParametersKey = __DriverGetParametersKey();
+
+ RegistryCloseKey(ParametersKey);
+ __DriverSetParametersKey(NULL);
+
RegistryTeardown();
Info("XEN %d.%d.%d (%d) (%02d.%02d.%04d)\n",
diff --git a/src/xen/driver.h b/src/xen/driver.h
index 8c39735147c6..11b421b10f76 100644
--- a/src/xen/driver.h
+++ b/src/xen/driver.h
@@ -32,6 +32,11 @@
#ifndef _XEN_DRIVER_H
#define _XEN_DRIVER_H
+extern HANDLE
+DriverGetParametersKey(
+ VOID
+ );
+
extern HANDLE
DriverGetUnplugKey(
VOID
--
2.17.1
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |