- Make ks and portcls compile under msvc
[reactos.git] / reactos / drivers / ksfilter / ks / irp.c
index 5d5b0a3..2603701 100644 (file)
@@ -34,6 +34,18 @@ KsDereferenceBusObject(
     UNIMPLEMENTED;
 }
 
+/*
+    @unimplemented
+*/
+KSDDKAPI
+VOID
+NTAPI
+KsDereferenceSoftwareBusObject(
+    IN KSDEVICE_HEADER  Header)
+{
+    UNIMPLEMENTED;
+}
+
 /*
     @implemented
 */
@@ -830,10 +842,8 @@ KsReleaseIrpOnCancelableQueue(
     /* get current irp stack */
     IoStack = IoGetCurrentIrpStackLocation(Irp);
 
-    /* get internal queue lock
-     * see KsAddIrpToCancelableQueue
-     */
-    SpinLock = (PKSPIN_LOCK)Irp->Tail.Overlay.DeviceQueueEntry.DeviceListEntry.Flink;
+    /* get internal queue lock */
+    SpinLock = KSQUEUE_SPINLOCK_IRP_STORAGE(Irp);
 
     /* acquire spinlock */
     KeAcquireSpinLock(SpinLock, &OldLevel);
@@ -993,10 +1003,8 @@ KsRemoveSpecificIrpFromCancelableQueue(
     PKSPIN_LOCK SpinLock;
     KIRQL OldLevel;
 
-    /* get internal queue lock
-     * see KsAddIrpToCancelableQueue
-     */
-    SpinLock = (PKSPIN_LOCK)Irp->Tail.Overlay.DeviceQueueEntry.DeviceListEntry.Flink;
+    /* get internal queue lock */
+    SpinLock = KSQUEUE_SPINLOCK_IRP_STORAGE(Irp);
 
     /* acquire spinlock */
     KeAcquireSpinLock(SpinLock, &OldLevel);
@@ -1053,11 +1061,8 @@ KsAddIrpToCancelableQueue(
         InsertHeadList(QueueHead, &Irp->Tail.Overlay.ListEntry);
     }
 
-    /* store the spinlock in the device queue list entry, 
-     * as other fields may have been internally been used
-     * used in KsCancelRoutine
-     */
-    Irp->Tail.Overlay.DeviceQueueEntry.DeviceListEntry.Flink = (PLIST_ENTRY)SpinLock;
+    /* store internal queue lock */
+    KSQUEUE_SPINLOCK_IRP_STORAGE(Irp) = SpinLock;
 
     /* now set the cancel routine */
     OldDriverCancel = IoSetCancelRoutine(Irp, DriverCancel);
@@ -1093,10 +1098,8 @@ KsCancelRoutine(
     PKSPIN_LOCK SpinLock;
     KIRQL OldLevel;
 
-    /* get internal queue lock
-     * see KsAddIrpToCancelableQueue
-     */
-    SpinLock = (PKSPIN_LOCK)Irp->Tail.Overlay.DeviceQueueEntry.DeviceListEntry.Flink;
+    /* get internal queue lock */
+    SpinLock = KSQUEUE_SPINLOCK_IRP_STORAGE(Irp);
 
     /* acquire spinlock */
     KeAcquireSpinLock(SpinLock, &OldLevel);
@@ -1203,8 +1206,8 @@ FindMatchingCreateItem(
     return STATUS_NOT_FOUND;
 }
 
-NTAPI
 NTSTATUS
+NTAPI
 KspCreate(
     IN  PDEVICE_OBJECT DeviceObject,
     IN  PIRP Irp)
@@ -1387,8 +1390,8 @@ RosDeviceInterfaceReferenceStringHack(
 
 }
 
-NTAPI
 NTSTATUS
+NTAPI
 KspDeviceControl(
     IN  PDEVICE_OBJECT DeviceObject,
     IN  PIRP Irp)
@@ -1422,8 +1425,8 @@ KspDeviceControl(
     return ObjectHeader->DispatchTable.DeviceIoControl(DeviceObject, Irp);
 }
 
-NTAPI
 NTSTATUS
+NTAPI
 KspDispatchIrp(
     IN  PDEVICE_OBJECT DeviceObject,
     IN  PIRP Irp)
@@ -1642,3 +1645,29 @@ KsDispatchIrp(
         return KsDispatchInvalidDeviceRequest(DeviceObject, Irp);
     }
 }
+
+/*
+    @unimplemented
+*/
+KSDDKAPI
+ULONG
+NTAPI
+KsGetNodeIdFromIrp(
+    IN PIRP Irp)
+{
+    UNIMPLEMENTED
+    return (ULONG)-1;
+}
+
+/*
+    @unimplemented
+*/
+KSDDKAPI
+PKSPIN
+NTAPI
+KsGetPinFromIrp(
+    IN PIRP Irp)
+{
+    UNIMPLEMENTED
+    return NULL;
+}