Synchronize with trunk revision 59636 (just before Alex's CreateProcess revamp).
[reactos.git] / drivers / ksfilter / ks / device.c
index 49d5787..c93b0b9 100644 (file)
@@ -218,7 +218,7 @@ IKsDevice_fnCheckIoCapability(
     return STATUS_NOT_IMPLEMENTED;
 }
 
-static IKsDeviceVtbl vt_IKsDevice = 
+static IKsDeviceVtbl vt_IKsDevice =
 {
     IKsDevice_fnQueryInterface,
     IKsDevice_fnAddRef,
@@ -605,6 +605,16 @@ IKsDevice_Create(
     /* get device header */
     DeviceHeader = DeviceExtension->DeviceHeader;
 
+    if (IoStack->FileObject->FileName.Buffer == NULL)
+    {
+        // ReactOS PnPMgr still sucks
+        ASSERT(IoStack->FileObject->FileName.Length == 0);
+        Irp->IoStatus.Status = STATUS_SUCCESS;
+        IoCompleteRequest(Irp, IO_NO_INCREMENT);
+        DPRINT1("ReactOS PnP hack\n");
+        return STATUS_SUCCESS;
+    }
+
     /* acquire list lock */
     IKsDevice_fnAcquireDevice((IKsDevice*)&DeviceHeader->BasicHeader.OuterUnknown);
 
@@ -621,12 +631,16 @@ IKsDevice_Create(
         ASSERT(ObjectHeader);
 
         /* find a matching a create item */
-        Status = FindMatchingCreateItem(&ObjectHeader->ItemList, IoStack->FileObject->FileName.Length, IoStack->FileObject->FileName.Buffer, &CreateItemEntry);
+        Status = FindMatchingCreateItem(&ObjectHeader->ItemList,
+                                        &IoStack->FileObject->FileName,
+                                        &CreateItemEntry);
     }
     else
     {
         /* request to create a filter */
-        Status = FindMatchingCreateItem(&DeviceHeader->ItemList, IoStack->FileObject->FileName.Length, IoStack->FileObject->FileName.Buffer, &CreateItemEntry);
+        Status = FindMatchingCreateItem(&DeviceHeader->ItemList,
+                                        &IoStack->FileObject->FileName,
+                                        &CreateItemEntry);
     }
 
     if (NT_SUCCESS(Status))