UNIMPLEMENTED;
}
+/*
+ @unimplemented
+*/
+KSDDKAPI
+VOID
+NTAPI
+KsDereferenceSoftwareBusObject(
+ IN KSDEVICE_HEADER Header)
+{
+ UNIMPLEMENTED;
+}
+
/*
@implemented
*/
/* 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);
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);
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);
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);
return STATUS_NOT_FOUND;
}
-NTAPI
NTSTATUS
+NTAPI
KspCreate(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp)
}
-NTAPI
NTSTATUS
+NTAPI
KspDeviceControl(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp)
return ObjectHeader->DispatchTable.DeviceIoControl(DeviceObject, Irp);
}
-NTAPI
NTSTATUS
+NTAPI
KspDispatchIrp(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp)
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;
+}