https://git.reactos.org/?p=reactos.git;a=commitdiff;h=66cf7b602871d16b968ef…
commit 66cf7b602871d16b968ef99d51ab90720f7b20e8
Author:     Benjamin Aerni <daprogramerforbatch(a)gmail.com>
AuthorDate: Mon Mar 30 03:58:25 2020 -0700
Commit:     GitHub <noreply(a)github.com>
CommitDate: Mon Mar 30 12:58:25 2020 +0200
    [PORTCLS] Stub missing IoControlCode switches (#1756)
    Stub missing switches: IOCTL_KS_HANDSHAKE and IOCTL_KS_METHOD.
---
 drivers/wdm/audio/backpln/portcls/pin_wavert.cpp | 62 +++++++++++++-----------
 1 file changed, 35 insertions(+), 27 deletions(-)
diff --git a/drivers/wdm/audio/backpln/portcls/pin_wavert.cpp
b/drivers/wdm/audio/backpln/portcls/pin_wavert.cpp
index d2e86881464..11ff57ab330 100644
--- a/drivers/wdm/audio/backpln/portcls/pin_wavert.cpp
+++ b/drivers/wdm/audio/backpln/portcls/pin_wavert.cpp
@@ -305,35 +305,43 @@ CPortPinWaveRT::DeviceIoControl(
     IoStack = IoGetCurrentIrpStackLocation(Irp);
-    if (IoStack->Parameters.DeviceIoControl.IoControlCode == IOCTL_KS_PROPERTY)
+    switch (IoStack->Parameters.DeviceIoControl.IoControlCode)
     {
-       return HandleKsProperty(Irp);
+        case IOCTL_KS_PROPERTY:
+            return HandleKsProperty(Irp);
+
+        case IOCTL_KS_ENABLE_EVENT:
+            /* FIXME UNIMPLEMENTED */
+            UNIMPLEMENTED_ONCE;
+            break;
+
+        case IOCTL_KS_DISABLE_EVENT:
+            /* FIXME UNIMPLEMENTED */
+            UNIMPLEMENTED_ONCE;
+            break;
+
+        case IOCTL_KS_HANDSHAKE:
+            /* FIXME UNIMPLEMENTED */
+            UNIMPLEMENTED_ONCE;
+            break;
+
+        case IOCTL_KS_METHOD:
+            /* FIXME UNIMPLEMENTED */
+            UNIMPLEMENTED_ONCE;
+            return KsDefaultDeviceIoCompletion(DeviceObject, Irp);
+
+        case IOCTL_KS_RESET_STATE:
+            /* FIXME UNIMPLEMENTED */
+            UNIMPLEMENTED_ONCE;
+            break;
+
+        case IOCTL_KS_WRITE_STREAM:
+        case IOCTL_KS_READ_STREAM:
+            return HandleKsStream(Irp);
+
+        default:
+            return KsDefaultDeviceIoCompletion(DeviceObject, Irp);
     }
-    else if (IoStack->Parameters.DeviceIoControl.IoControlCode ==
IOCTL_KS_ENABLE_EVENT)
-    {
-        /// FIXME
-        /// handle enable event
-    }
-    else if (IoStack->Parameters.DeviceIoControl.IoControlCode ==
IOCTL_KS_DISABLE_EVENT)
-    {
-        /// FIXME
-        /// handle disable event
-    }
-    else if (IoStack->Parameters.DeviceIoControl.IoControlCode ==
IOCTL_KS_RESET_STATE)
-    {
-        /// FIXME
-        /// handle reset state
-    }
-    else if (IoStack->Parameters.DeviceIoControl.IoControlCode ==
IOCTL_KS_WRITE_STREAM || IoStack->Parameters.DeviceIoControl.IoControlCode ==
IOCTL_KS_READ_STREAM)
-    {
-       return HandleKsStream(Irp);
-    }
-    else
-    {
-        return KsDefaultDeviceIoCompletion(DeviceObject, Irp);
-    }
-
-    UNIMPLEMENTED;
     Irp->IoStatus.Information = 0;
     Irp->IoStatus.Status = STATUS_UNSUCCESSFUL;