Author: janderwald
Date: Thu Aug 13 11:53:13 2009
New Revision: 42648

URL: http://svn.reactos.org/svn/reactos?rev=42648&view=rev
Log:
- Implement IPortDMus_fnNewRegistryKey

Modified:
    trunk/reactos/drivers/wdm/audio/backpln/portcls/port_dmus.c

Modified: trunk/reactos/drivers/wdm/audio/backpln/portcls/port_dmus.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/wdm/audio/backpln/portcls/port_dmus.c?rev=42648&r1=42647&r2=42648&view=diff
==============================================================================
--- trunk/reactos/drivers/wdm/audio/backpln/portcls/port_dmus.c [iso-8859-1] 
(original)
+++ trunk/reactos/drivers/wdm/audio/backpln/portcls/port_dmus.c [iso-8859-1] 
Thu Aug 13 11:53:13 2009
@@ -219,6 +219,12 @@
         }
     }
 
+    /* Initialize port object */
+    This->pMiniport = Miniport;
+    This->pMiniportMidi = MidiMiniport;
+    This->pDeviceObject = DeviceObject;
+    This->bInitialized = TRUE;
+
     if (Miniport)
     {
         /* initialize IMiniportDMus */
@@ -226,6 +232,7 @@
         if (!NT_SUCCESS(Status))
         {
             DPRINT("IMiniportDMus_Init failed with %x\n", Status);
+            This->bInitialized = FALSE;
             return Status;
         }
 
@@ -235,6 +242,7 @@
         {
             DPRINT1("failed to get description\n");
             Miniport->lpVtbl->Release(Miniport);
+            This->bInitialized = FALSE;
             return Status;
         }
 
@@ -249,6 +257,7 @@
         if (!NT_SUCCESS(Status))
         {
             DPRINT("IMiniportMidi_Init failed with %x\n", Status);
+            This->bInitialized = FALSE;
             return Status;
         }
 
@@ -258,6 +267,7 @@
         {
             DPRINT1("failed to get description\n");
             MidiMiniport->lpVtbl->Release(MidiMiniport);
+            This->bInitialized = FALSE;
             return Status;
         }
 
@@ -290,6 +300,7 @@
         else
             MidiMiniport->lpVtbl->Release(MidiMiniport);
 
+        This->bInitialized = FALSE;
         return Status;
     }
 
@@ -298,12 +309,6 @@
         /* register service group */
         This->ServiceGroup = ServiceGroup;
     }
-
-    /* Initialize port object */
-    This->pMiniport = Miniport;
-    This->pMiniportMidi = MidiMiniport;
-    This->pDeviceObject = DeviceObject;
-    This->bInitialized = TRUE;
 
     /* check if it supports IPinCount interface */
     Status = UnknownMiniport->lpVtbl->QueryInterface(UnknownMiniport, 
&IID_IPinCount, (PVOID*)&PinCount);
@@ -346,7 +351,16 @@
         DPRINT("IPortDMus_fnNewRegistryKey called w/o initialized\n");
         return STATUS_UNSUCCESSFUL;
     }
-    return STATUS_UNSUCCESSFUL;
+
+    return PcNewRegistryKey(OutRegistryKey,
+                            OuterUnknown,
+                            RegistryKeyType,
+                            DesiredAccess,
+                            This->pDeviceObject,
+                            NULL,//FIXME
+                            ObjectAttributes,
+                            CreateOptions,
+                            Disposition);
 }
 
 VOID


Reply via email to