]> xenbits.xensource.com Git - people/pauldu/xenvif.git/commitdiff
Remove use of 'Addresses' subkey
authorPaul Durrant <paul.durrant@citrix.com>
Tue, 7 Jul 2015 10:44:53 +0000 (11:44 +0100)
committerPaul Durrant <paul.durrant@citrix.com>
Wed, 8 Jul 2015 12:20:45 +0000 (13:20 +0100)
XENVIF writes the permanent address of each vif into a subkey under its
service key. This is done to allow XENNET's co-installer to copy network
settings from any emulated device that currently has that address.

As of Windows 10, this functionality cannot be provided by a co-installer
and so this subkey has become useless. Hence this patch removes its use.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
src/xenvif/driver.c
src/xenvif/driver.h
src/xenvif/pdo.c

index b9e6d2fb2caccdc5ba053eeaf3ae1075811fa9fd..46fe7f13c2eca9255a6a65c665ddb2d824ca6f68 100644 (file)
@@ -47,7 +47,6 @@ extern PULONG       InitSafeBootMode;
 typedef struct _XENVIF_DRIVER {
     PDRIVER_OBJECT      DriverObject;
     HANDLE              ParametersKey;
-    HANDLE              AddressesKey;
     HANDLE              StatusKey;
 } XENVIF_DRIVER, *PXENVIF_DRIVER;
 
@@ -101,30 +100,6 @@ DriverGetParametersKey(
     return __DriverGetParametersKey();
 }
 
-static FORCEINLINE VOID
-__DriverSetAddressesKey(
-    IN  HANDLE  Key
-    )
-{
-    Driver.AddressesKey = Key;
-}
-
-static FORCEINLINE HANDLE
-__DriverGetAddressesKey(
-    VOID
-    )
-{
-    return Driver.AddressesKey;
-}
-
-HANDLE
-DriverGetAddressesKey(
-    VOID
-    )
-{
-    return __DriverGetAddressesKey();
-}
-
 static FORCEINLINE VOID
 __DriverSetStatusKey(
     IN  HANDLE  Key
@@ -156,7 +131,6 @@ DriverUnload(
     IN  PDRIVER_OBJECT  DriverObject
     )
 {
-    HANDLE              AddressesKey;
     HANDLE              ParametersKey;
     HANDLE              StatusKey;
 
@@ -172,11 +146,6 @@ DriverUnload(
 
     RegistryCloseKey(StatusKey);
 
-    AddressesKey = __DriverGetAddressesKey();
-    __DriverSetAddressesKey(NULL);
-
-    RegistryCloseKey(AddressesKey);
-
     ParametersKey = __DriverGetParametersKey();
     __DriverSetParametersKey(NULL);
 
@@ -284,7 +253,6 @@ DriverEntry(
 {
     HANDLE              ServiceKey;
     HANDLE              ParametersKey;
-    HANDLE              AddressesKey;
     HANDLE              StatusKey;
     ULONG               Index;
     NTSTATUS            status;
@@ -331,21 +299,12 @@ DriverEntry(
 
     __DriverSetParametersKey(ParametersKey);
 
-    status = RegistryCreateSubKey(ServiceKey, 
-                                  "Addresses", 
-                                  REG_OPTION_VOLATILE, 
-                                  &AddressesKey);
-    if (!NT_SUCCESS(status))
-        goto fail4;
-
-    __DriverSetAddressesKey(AddressesKey);
-
     status = RegistryCreateSubKey(ServiceKey,
                                   "Status",
                                   REG_OPTION_VOLATILE,
                                   &StatusKey);
     if (!NT_SUCCESS(status))
-        goto fail5;
+        goto fail4;
 
     __DriverSetStatusKey(StatusKey);
 
@@ -364,13 +323,6 @@ done:
 
     return STATUS_SUCCESS;
 
-fail5:
-    Error("fail5\n");
-
-    __DriverSetAddressesKey(NULL);
-
-    RegistryCloseKey(AddressesKey);
-
 fail4:
     Error("fail4\n");
 
index 17ed726ef980a644d6e80b6fc3cfe66fe2963d43..cecefd0db9c6339e3f34d983ca48e6a0c3dd583b 100644 (file)
@@ -42,11 +42,6 @@ DriverGetParametersKey(
     VOID
     );
 
-extern HANDLE
-DriverGetAddressesKey(
-    VOID
-    );
-
 extern HANDLE
 DriverGetStatusKey(
     VOID
index 61ab4cac630dd16b73e57ae8650dde417392c0d8..f2e6a8f660000db92388a2c89fb036b9d3ffcb29 100644 (file)
@@ -808,36 +808,16 @@ __PdoSetPermanentAddress(
     IN  PCHAR       Buffer
     )
 {
-    HANDLE          AddressesKey;
-    ANSI_STRING     Ansi;
-    ULONG           Index;
     NTSTATUS        status;
 
     status = __PdoParseAddress(Buffer, &Pdo->PermanentAddress);
     if (!NT_SUCCESS(status))
         goto fail1;
 
-    AddressesKey = DriverGetAddressesKey();
-
-    RtlInitAnsiString(&Ansi, Buffer);
-
-    for (Index = 0; Index < Ansi.Length; Index++)
-        Ansi.Buffer[Index] = (CHAR)toupper(Ansi.Buffer[Index]);
-
-    Info("%s %Z\n", __PdoGetName(Pdo), &Ansi);
-
-    status = RegistryUpdateSzValue(AddressesKey,
-                                   __PdoGetName(Pdo),
-                                   REG_SZ,
-                                   &Ansi);
-    if (!NT_SUCCESS(status))
-        goto fail2;
+    Info("%s: %s\n", __PdoGetName(Pdo), Buffer);
 
     return STATUS_SUCCESS;
 
-fail2:
-    Error("fail2\n");
-
 fail1:
     Error("fail1 (%08x)\n", status);
 
@@ -879,6 +859,8 @@ __PdoSetCurrentAddress(
     if (!NT_SUCCESS(status))
         goto fail2;
 
+    Info("%s: %Z\n", __PdoGetName(Pdo), &Ansi[0]);
+
     RegistryFreeSzValue(Ansi);
 
 done: