diff --git a/reactos/drivers/ksfilter/ks/api.c b/reactos/drivers/ksfilter/ks/api.c
index 9c568c3b719..8f2874a2257 100644
--- a/reactos/drivers/ksfilter/ks/api.c
+++ b/reactos/drivers/ksfilter/ks/api.c
@@ -1155,4 +1155,371 @@ KsCacheMedium(
return STATUS_UNSUCCESSFUL;
}
+/*
+ @implemented
+*/
+NTSTATUS
+NTAPI
+DllInitialize(
+ PUNICODE_STRING RegistryPath)
+{
+ return STATUS_SUCCESS;
+}
+
+/*
+ @unimplemented
+*/
+COMDDKAPI
+NTSTATUS
+NTAPI
+KoDeviceInitialize(
+ IN PDEVICE_OBJECT DeviceObject)
+{
+ UNIMPLEMENTED;
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ @unimplemented
+*/
+COMDDKAPI
+NTSTATUS
+NTAPI
+KoDriverInitialize(
+ IN PDRIVER_OBJECT DriverObject,
+ IN PUNICODE_STRING RegistryPathName,
+ IN KoCreateObjectHandler CreateObjectHandler)
+{
+ UNIMPLEMENTED;
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ @unimplemented
+*/
+COMDDKAPI
+VOID
+NTAPI
+KoRelease(
+ IN REFCLSID ClassId)
+{
+
+}
+
+/*
+ @unimplemented
+*/
+KSDDKAPI
+VOID
+NTAPI
+KsAcquireControl(
+ IN PVOID Object)
+{
+ UNIMPLEMENTED
+}
+
+/*
+ @unimplemented
+*/
+KSDDKAPI
+VOID
+NTAPI
+KsAcquireDevice(
+ IN PKSDEVICE Device)
+{
+ UNIMPLEMENTED
+}
+
+
+/*
+ @unimplemented
+*/
+KSDDKAPI
+VOID
+NTAPI
+KsCompletePendingRequest(
+ IN PIRP Irp)
+{
+ UNIMPLEMENTED
+}
+
+/*
+ @unimplemented
+*/
+KSDDKAPI
+NTSTATUS
+NTAPI
+KsCreateBusEnumObject(
+ IN PWCHAR BusIdentifier,
+ IN PDEVICE_OBJECT BusDeviceObject,
+ IN PDEVICE_OBJECT PhysicalDeviceObject,
+ IN PDEVICE_OBJECT PnpDeviceObject OPTIONAL,
+ IN REFGUID InterfaceGuid OPTIONAL,
+ IN PWCHAR ServiceRelativePath OPTIONAL)
+{
+ UNIMPLEMENTED
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ @unimplemented
+*/
+KSDDKAPI
+ULONG
+NTAPI
+KsDeviceSetBusData(
+ IN PKSDEVICE Device,
+ IN ULONG DataType,
+ IN PVOID Buffer,
+ IN ULONG Offset,
+ IN ULONG Length)
+{
+ UNIMPLEMENTED
+ return 0;
+}
+
+
+/*
+ @unimplemented
+*/
+KSDDKAPI
+ULONG
+NTAPI
+KsDeviceGetBusData(
+ IN PKSDEVICE Device,
+ IN ULONG DataType,
+ IN PVOID Buffer,
+ IN ULONG Offset,
+ IN ULONG Length)
+{
+ UNIMPLEMENTED
+ return 0;
+}
+
+/*
+ @unimplemented
+*/
+KSDDKAPI
+void
+NTAPI
+KsDeviceRegisterAdapterObject(
+ IN PKSDEVICE Device,
+ IN PADAPTER_OBJECT AdapterObject,
+ IN ULONG MaxMappingsByteCount,
+ IN ULONG MappingTableStride)
+{
+ UNIMPLEMENTED
+}
+
+/*
+ @unimplemented
+*/
+KSDDKAPI
+NTSTATUS
+NTAPI
+_KsEdit(
+ IN KSOBJECT_BAG ObjectBag,
+ IN OUT PVOID* PointerToPointerToItem,
+ IN ULONG NewSize,
+ IN ULONG OldSize,
+ IN ULONG Tag)
+{
+ UNIMPLEMENTED
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ @unimplemented
+*/
+KSDDKAPI
+NTSTATUS
+NTAPI
+KsGetBusEnumIdentifier(
+ IN PIRP Irp)
+{
+ UNIMPLEMENTED
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ @unimplemented
+*/
+KSDDKAPI
+NTSTATUS
+NTAPI
+KsGetBusEnumParentFDOFromChildPDO(
+ IN PDEVICE_OBJECT DeviceObject,
+ OUT PDEVICE_OBJECT *FunctionalDeviceObject)
+{
+ UNIMPLEMENTED
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ @unimplemented
+*/
+KSDDKAPI
+NTSTATUS
+NTAPI
+KsGetBusEnumPnpDeviceObject(
+ IN PDEVICE_OBJECT DeviceObject,
+ IN PDEVICE_OBJECT *PnpDeviceObject)
+{
+ UNIMPLEMENTED
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ @unimplemented
+*/
+KSDDKAPI
+PVOID
+NTAPI
+KsGetFirstChild(
+ IN PVOID Object)
+{
+ UNIMPLEMENTED
+ return NULL;
+}
+
+/*
+ @unimplemented
+*/
+KSDDKAPI
+PVOID
+NTAPI
+KsGetNextSibling(
+ IN PVOID Object)
+{
+ UNIMPLEMENTED
+ return NULL;
+}
+
+/*
+ @unimplemented
+*/
+KSDDKAPI
+NTSTATUS
+NTAPI
+KsInstallBusEnumInterface(
+ PIRP Irp)
+{
+ UNIMPLEMENTED
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ @unimplemented
+*/
+KSDDKAPI
+NTSTATUS
+NTAPI
+KsIsBusEnumChildDevice(
+ IN PDEVICE_OBJECT DeviceObject,
+ OUT PBOOLEAN ChildDevice)
+{
+ UNIMPLEMENTED
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ @unimplemented
+*/
+NTSTATUS
+NTAPI
+KsMergeAutomationTables(
+ OUT PKSAUTOMATION_TABLE *AutomationTableAB,
+ IN PKSAUTOMATION_TABLE AutomationTableA OPTIONAL,
+ IN PKSAUTOMATION_TABLE AutomationTableB OPTIONAL,
+ IN KSOBJECT_BAG Bag OPTIONAL)
+{
+ UNIMPLEMENTED
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ @unimplemented
+*/
+KSDDKAPI
+NTSTATUS
+NTAPI
+KsServiceBusEnumCreateRequest(
+ IN PDEVICE_OBJECT DeviceObject,
+ IN OUT PIRP Irp)
+{
+ UNIMPLEMENTED
+ return STATUS_UNSUCCESSFUL;
+}
+
+
+/*
+ @unimplemented
+*/
+KSDDKAPI
+NTSTATUS
+NTAPI
+KsServiceBusEnumPnpRequest(
+ IN PDEVICE_OBJECT DeviceObject,
+ IN OUT PIRP Irp)
+{
+ UNIMPLEMENTED
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ @unimplemented
+*/
+KSDDKAPI
+NTSTATUS
+NTAPI
+KsRemoveBusEnumInterface(
+ IN PIRP Irp)
+{
+ UNIMPLEMENTED
+ return STATUS_UNSUCCESSFUL;
+}
+
+
+
+/*
+ @unimplemented
+*/
+KSDDKAPI
+PUNKNOWN
+NTAPI
+KsRegisterAggregatedClientUnknown(
+ IN PVOID Object,
+ IN PUNKNOWN ClientUnknown)
+{
+ UNIMPLEMENTED
+ return NULL;
+}
+
+/*
+ @unimplemented
+*/
+VOID
+NTAPI
+KsReleaseControl(
+ IN PVOID Object)
+{
+ UNIMPLEMENTED
+}
+
+/*
+ @unimplemented
+*/
+NTSTATUS
+NTAPI
+KsRegisterFilterWithNoKSPins(
+ IN PDEVICE_OBJECT DeviceObject,
+ IN const GUID* InterfaceClassGUID,
+ IN ULONG PinCount,
+ IN BOOL* PinDirection,
+ IN KSPIN_MEDIUM* MediumList,
+ IN GUID* CategoryList OPTIONAL)
+{
+ UNIMPLEMENTED
+ return STATUS_UNSUCCESSFUL;
+}
diff --git a/reactos/drivers/ksfilter/ks/bag.c b/reactos/drivers/ksfilter/ks/bag.c
index bde0b33d6b5..e9fafbb9401 100644
--- a/reactos/drivers/ksfilter/ks/bag.c
+++ b/reactos/drivers/ksfilter/ks/bag.c
@@ -9,47 +9,37 @@
#include "priv.h"
-
-#if 0
-typedef struct
-{
- LIST_ENTRY Entry;
- PVOID Item;
- PFNKSFREE Free;
- LONG ReferenceCount;
-}KSOBJECT_BAG_ENTRY;
-
-typedef struct
-{
- LIST_ENTRY ListHead;
- KMUTEX Lock;
-}KSOBJECT_BAG_IMPL;
-
/*
- @implemented
+ @unimplemented
*/
KSDDKAPI
NTSTATUS
NTAPI
-KsAddItemToObjectBag(
- IN KSOBJECT_BAG ObjectBag,
- IN PVOID Item,
- IN PFNKSFREE Free OPTIONAL)
+KsAllocateObjectBag(
+ IN PKSDEVICE Device,
+ OUT KSOBJECT_BAG* ObjectBag)
{
- KSOBJECT_BAG_ENTRY * Entry;
- KSOBJECT_BAG_IMPL * Bag = (KSOBJECT_BAG_IMPL)ObjectBag;
-
- Entry = ExAllocatePool(NonPagedPool, sizeof(KSOBJECT_BAG_ENTRY));
- if (!Entry)
- return STATUS_INSUFFICIENT_RESOURCES;
-
- Entry->Free = Free;
- Entry->Item = Item;
-
- InsertTailList(&Bag->ListHead, &Entry->Entry);
- return STATUS_SUCCESS;
+ UNIMPLEMENTED
+ return STATUS_NOT_IMPLEMENTED;
}
+/*
+ @unimplemented
+*/
+NTSTATUS
+NTAPI
+KsAddItemToObjectBag(
+ IN KSOBJECT_BAG ObjectBag,
+ IN PVOID Item,
+ IN PFNKSFREE Free OPTIONAL)
+{
+ UNIMPLEMENTED
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+/*
+ @unimplemented
+*/
KSDDKAPI
ULONG
NTAPI
@@ -58,10 +48,32 @@ KsRemoveItemFromObjectBag(
IN PVOID Item,
IN BOOLEAN Free)
{
- KSOBJECT_BAG_IMPL * Bag = (KSOBJECT_BAG_IMPL)ObjectBag;
-
-
-
-
+ UNIMPLEMENTED
+ return 0;
}
-#endif
+
+/*
+ @unimplemented
+*/
+KSDDKAPI
+NTSTATUS
+NTAPI
+KsCopyObjectBagItems(
+ IN KSOBJECT_BAG ObjectBagDestination,
+ IN KSOBJECT_BAG ObjectBagSource)
+{
+ UNIMPLEMENTED
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+KSDDKAPI
+VOID
+NTAPI
+KsFreeObjectBag(
+ IN KSOBJECT_BAG ObjectBag)
+{
+ UNIMPLEMENTED
+}
+
+
+
diff --git a/reactos/drivers/ksfilter/ks/device.c b/reactos/drivers/ksfilter/ks/device.c
index 33811e14e7b..3bfd6191439 100644
--- a/reactos/drivers/ksfilter/ks/device.c
+++ b/reactos/drivers/ksfilter/ks/device.c
@@ -680,5 +680,40 @@ KsInitializeDevice(
return Status;
}
+/*
+ @implemented
+*/
+KSDDKAPI
+VOID
+NTAPI
+KsTerminateDevice(
+ IN PDEVICE_OBJECT DeviceObject)
+{
+ UNIMPLEMENTED
+}
+
+/*
+ @implemented
+*/
+VOID
+NTAPI
+KsReleaseDevice(
+ IN PKSDEVICE Device)
+{
+ UNIMPLEMENTED
+}
+
+/*
+ @implemented
+*/
+KSDDKAPI
+NTSTATUS
+NTAPI
+KsReferenceSoftwareBusObject(
+ IN KSDEVICE_HEADER Header)
+{
+ UNIMPLEMENTED
+ return STATUS_NOT_IMPLEMENTED;
+}
diff --git a/reactos/drivers/ksfilter/ks/event.c b/reactos/drivers/ksfilter/ks/event.c
index a803f18c6ac..f29ea2fc780 100644
--- a/reactos/drivers/ksfilter/ks/event.c
+++ b/reactos/drivers/ksfilter/ks/event.c
@@ -121,6 +121,9 @@ KsGenerateDataEvent(
return STATUS_UNSUCCESSFUL;
}
+/*
+ @unimplemented
+*/
KSDDKAPI
VOID
NTAPI
@@ -134,3 +137,47 @@ KsGenerateEventList(
UNIMPLEMENTED
}
+/*
+ @unimplemented
+*/
+KSDDKAPI
+VOID
+NTAPI
+KsAddEvent(
+ IN PVOID Object,
+ IN PKSEVENT_ENTRY EventEntry)
+{
+ UNIMPLEMENTED
+}
+
+/*
+ @unimplemented
+*/
+NTSTATUS
+NTAPI
+KsDefaultAddEventHandler(
+ IN PIRP Irp,
+ IN PKSEVENTDATA EventData,
+ IN OUT PKSEVENT_ENTRY EventEntry)
+{
+ UNIMPLEMENTED
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+/*
+ @unimplemented
+*/
+KSDDKAPI
+void
+NTAPI
+KsGenerateEvents(
+ IN PVOID Object,
+ IN const GUID* EventSet OPTIONAL,
+ IN ULONG EventId,
+ IN ULONG DataSize,
+ IN PVOID Data OPTIONAL,
+ IN PFNKSGENERATEEVENTCALLBACK CallBack OPTIONAL,
+ IN PVOID CallBackContext OPTIONAL)
+{
+ UNIMPLEMENTED
+}
diff --git a/reactos/drivers/ksfilter/ks/filter.c b/reactos/drivers/ksfilter/ks/filter.c
index 7cff09b85a2..b8437cf8415 100644
--- a/reactos/drivers/ksfilter/ks/filter.c
+++ b/reactos/drivers/ksfilter/ks/filter.c
@@ -924,3 +924,154 @@ KspCreateFilter(
/* completed initialization */
return Status;
}
+
+/*
+ @implemented
+*/
+KSDDKAPI
+VOID
+NTAPI
+KsFilterAcquireProcessingMutex(
+ IN PKSFILTER Filter)
+{
+ UNIMPLEMENTED
+}
+
+/*
+ @implemented
+*/
+KSDDKAPI
+VOID
+NTAPI
+KsFilterReleaseProcessingMutex(
+ IN PKSFILTER Filter)
+{
+ UNIMPLEMENTED
+}
+
+/*
+ @implemented
+*/
+KSDDKAPI
+NTSTATUS
+NTAPI
+KsFilterAddTopologyConnections (
+ IN PKSFILTER Filter,
+ IN ULONG NewConnectionsCount,
+ IN const KSTOPOLOGY_CONNECTION *const NewTopologyConnections)
+{
+ UNIMPLEMENTED
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+/*
+ @implemented
+*/
+KSDDKAPI
+VOID
+NTAPI
+KsFilterAttemptProcessing(
+ IN PKSFILTER Filter,
+ IN BOOLEAN Asynchronous)
+{
+ UNIMPLEMENTED
+}
+
+/*
+ @implemented
+*/
+KSDDKAPI
+NTSTATUS
+NTAPI
+KsFilterCreateNode (
+ IN PKSFILTER Filter,
+ IN const KSNODE_DESCRIPTOR *const NodeDescriptor,
+ OUT PULONG NodeID)
+{
+ UNIMPLEMENTED
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+/*
+ @implemented
+*/
+KSDDKAPI
+NTSTATUS
+NTAPI
+KsFilterCreatePinFactory (
+ IN PKSFILTER Filter,
+ IN const KSPIN_DESCRIPTOR_EX *const PinDescriptor,
+ OUT PULONG PinID)
+{
+ UNIMPLEMENTED
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+/*
+ @implemented
+*/
+KSDDKAPI
+PKSGATE
+NTAPI
+KsFilterGetAndGate(
+ IN PKSFILTER Filter)
+{
+ UNIMPLEMENTED
+ return NULL;
+}
+
+/*
+ @implemented
+*/
+KSDDKAPI
+ULONG
+NTAPI
+KsFilterGetChildPinCount(
+ IN PKSFILTER Filter,
+ IN ULONG PinId)
+{
+ UNIMPLEMENTED
+ return 0;
+}
+
+/*
+ @implemented
+*/
+KSDDKAPI
+PKSPIN
+NTAPI
+KsFilterGetFirstChildPin(
+ IN PKSFILTER Filter,
+ IN ULONG PinId)
+{
+ UNIMPLEMENTED
+ return NULL;
+}
+
+/*
+ @implemented
+*/
+KSDDKAPI
+VOID
+NTAPI
+KsFilterRegisterPowerCallbacks(
+ IN PKSFILTER Filter,
+ IN PFNKSFILTERPOWER Sleep OPTIONAL,
+ IN PFNKSFILTERPOWER Wake OPTIONAL)
+{
+ UNIMPLEMENTED
+}
+
+/*
+ @implemented
+*/
+KSDDKAPI
+PKSFILTER
+NTAPI
+KsGetFilterFromIrp(
+ IN PIRP Irp)
+{
+ UNIMPLEMENTED
+ return NULL;
+}
+
diff --git a/reactos/drivers/ksfilter/ks/irp.c b/reactos/drivers/ksfilter/ks/irp.c
index a4ed7174dc9..df6b3b26ad7 100644
--- a/reactos/drivers/ksfilter/ks/irp.c
+++ b/reactos/drivers/ksfilter/ks/irp.c
@@ -34,6 +34,18 @@ KsDereferenceBusObject(
UNIMPLEMENTED;
}
+/*
+ @unimplemented
+*/
+KSDDKAPI
+VOID
+NTAPI
+KsDereferenceSoftwareBusObject(
+ IN KSDEVICE_HEADER Header)
+{
+ UNIMPLEMENTED;
+}
+
/*
@implemented
*/
@@ -1633,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;
+}
diff --git a/reactos/drivers/ksfilter/ks/ks.rbuild b/reactos/drivers/ksfilter/ks/ks.rbuild
index 1e8998d7ca3..1a463d6c82c 100644
--- a/reactos/drivers/ksfilter/ks/ks.rbuild
+++ b/reactos/drivers/ksfilter/ks/ks.rbuild
@@ -26,6 +26,7 @@
irp.c
methods.c
misc.c
+ pin.c
property.c
topology.c
worker.c
diff --git a/reactos/drivers/ksfilter/ks/ks.spec b/reactos/drivers/ksfilter/ks/ks.spec
index 5db6978b036..a3234b13c0f 100644
--- a/reactos/drivers/ksfilter/ks/ks.spec
+++ b/reactos/drivers/ksfilter/ks/ks.spec
@@ -1,111 +1,218 @@
-@ stdcall KsCreateAllocator(ptr ptr ptr)
-@ stdcall KsCreateDefaultAllocator(ptr)
-@ stdcall KsValidateAllocatorCreateRequest(ptr ptr)
-@ stdcall KsCreateDefaultAllocatorEx(ptr ptr ptr ptr ptr ptr)
-@ stdcall KsValidateAllocatorFramingEx(ptr long ptr)
-
-@ stdcall KsCreateClock(ptr ptr ptr)
-@ stdcall KsCreateDefaultClock(ptr ptr)
+@ stdcall DllInitialize(ptr)
+@ stdcall KoCreateInstance(ptr ptr long ptr ptr)
+@ stdcall KoDeviceInitialize(ptr)
+@ stdcall KoDriverInitialize(ptr ptr ptr)
+@ stdcall KoRelease(ptr)
+@ stdcall KsAcquireControl(ptr)
+@ stdcall KsAcquireDevice(ptr)
+@ stdcall KsAcquireDeviceSecurityLock(ptr long)
+@ stdcall KsAcquireResetValue(ptr ptr)
+@ stdcall KsAddDevice(ptr ptr)
+@ stdcall KsAddEvent(ptr ptr)
+@ stdcall KsAddIrpToCancelableQueue(ptr ptr ptr long ptr)
+@ stdcall KsAddItemToObjectBag(ptr ptr ptr)
+@ stdcall KsAddObjectCreateItemToDeviceHeader (ptr ptr ptr ptr ptr)
+@ stdcall KsAddObjectCreateItemToObjectHeader(ptr ptr ptr ptr ptr)
@ stdcall KsAllocateDefaultClock(ptr)
@ stdcall KsAllocateDefaultClockEx(ptr ptr ptr ptr ptr ptr long)
-@ stdcall KsFreeDefaultClock(ptr)
-@ stdcall KsValidateClockCreateRequest(ptr ptr)
-@ stdcall KsGetDefaultClockState(ptr)
-@ stdcall KsSetDefaultClockState(ptr long)
-@ stdcall KsGetDefaultClockTime(ptr)
-@ stdcall KsSetDefaultClockTime(ptr long long)
-
-@ stdcall KsMethodHandler(ptr long ptr)
-@ stdcall KsMethodHandlerWithAllocator(ptr long ptr ptr long)
-@ stdcall KsFastMethodHandler(ptr ptr long ptr long ptr long ptr)
-
-@ stdcall KsPropertyHandler(ptr long ptr)
-@ stdcall KsPropertyHandlerWithAllocator(ptr long ptr ptr long)
-@ stdcall KsUnserializeObjectPropertiesFromRegistry(ptr ptr ptr)
-@ stdcall KsFastPropertyHandler(ptr ptr long ptr long ptr long ptr)
-
-@ stdcall KsGenerateEvent(ptr)
-@ stdcall KsEnableEventWithAllocator(ptr long ptr ptr long ptr ptr long)
-@ stdcall KsGenerateDataEvent(ptr long ptr)
-@ stdcall KsEnableEvent(ptr long ptr ptr long ptr)
-@ stdcall KsDiscardEvent(ptr)
-@ stdcall KsDisableEvent(ptr ptr long ptr)
-@ stdcall KsFreeEventList(ptr ptr long ptr)
-
-@ stdcall KsValidateTopologyNodeCreateRequest(ptr ptr ptr)
-@ stdcall KsCreateTopologyNode(ptr ptr long ptr)
-@ stdcall KsTopologyPropertyHandler(ptr ptr ptr ptr)
-
-@ stdcall KsCreatePin(ptr ptr long ptr)
-@ stdcall KsValidateConnectRequest(ptr long ptr ptr)
-@ stdcall KsPinPropertyHandler(ptr ptr ptr long ptr)
-@ stdcall KsPinDataIntersection(ptr ptr ptr long ptr ptr)
-
-@ stdcall KsHandleSizedListQuery(ptr long long ptr)
-
-@ stdcall KsAcquireResetValue(ptr ptr)
-@ stdcall KsDefaultForwardIrp(ptr ptr)
-@ stdcall KsAddIrpToCancelableQueue(ptr ptr ptr long ptr)
-@ stdcall KsAddObjectCreateItemToDeviceHeader(ptr ptr ptr wstr ptr)
-@ stdcall KsAddObjectCreateItemToObjectHeader(ptr ptr ptr wstr ptr)
@ stdcall KsAllocateDeviceHeader(ptr long ptr)
@ stdcall KsAllocateExtraData(ptr long ptr)
-@ stdcall KsAllocateObjectCreateItem(long ptr long ptr)
+@ stdcall KsAllocateObjectBag(ptr ptr)
+@ stdcall KsAllocateObjectCreateItem(ptr ptr long ptr)
@ stdcall KsAllocateObjectHeader(ptr long ptr ptr ptr)
+@ stdcall KsCacheMedium(ptr ptr long)
@ stdcall KsCancelIo(ptr ptr)
@ stdcall KsCancelRoutine(ptr ptr)
+@ stdcall KsCompletePendingRequest(ptr)
+@ stdcall KsCopyObjectBagItems(ptr ptr)
+@ stdcall KsCreateAllocator(ptr ptr ptr)
+@ stdcall KsCreateBusEnumObject(ptr ptr ptr ptr ptr ptr)
+@ stdcall KsCreateClock(ptr ptr ptr)
+@ stdcall KsCreateDefaultAllocator(ptr)
+@ stdcall KsCreateDefaultAllocatorEx(ptr ptr ptr ptr ptr ptr)
+@ stdcall KsCreateDefaultClock(ptr ptr)
+@ stdcall KsCreateDefaultSecurity(ptr ptr)
+@ stdcall KsCreateDevice(ptr ptr ptr long ptr)
+@ stdcall KsCreateFilterFactory(ptr ptr ptr ptr long ptr ptr ptr)
+@ stdcall KsCreatePin(ptr ptr long ptr)
+@ stdcall KsCreateTopologyNode(ptr ptr long ptr)
+@ stdcall KsDecrementCountedWorker(ptr)
+@ stdcall KsDefaultAddEventHandler(ptr ptr ptr)
@ stdcall KsDefaultDeviceIoCompletion(ptr ptr)
+@ stdcall KsDefaultDispatchPnp(ptr ptr)
+@ stdcall KsDefaultDispatchPower(ptr ptr)
+@ stdcall KsDefaultForwardIrp(ptr ptr)
+@ stdcall KsDereferenceBusObject(ptr)
+@ stdcall KsDereferenceSoftwareBusObject(ptr)
+@ stdcall KsDeviceGetBusData(ptr long ptr long long)
+@ stdcall KsDeviceRegisterAdapterObject(ptr ptr long long)
+@ stdcall KsDeviceSetBusData(ptr long ptr long long)
+@ stdcall KsDisableEvent(ptr ptr long long)
+@ stdcall KsDiscardEvent(ptr)
@ stdcall KsDispatchFastIoDeviceControlFailure(ptr long ptr long ptr long long ptr ptr)
@ stdcall KsDispatchFastReadFailure(ptr ptr long long long ptr ptr ptr)
-; KsDispatchFastWriteFailure@32
@ stdcall KsDispatchInvalidDeviceRequest(ptr ptr)
@ stdcall KsDispatchIrp(ptr ptr)
+@ stdcall KsDispatchQuerySecurity(ptr ptr)
+@ stdcall KsDispatchSetSecurity(ptr ptr)
@ stdcall KsDispatchSpecificMethod(ptr ptr)
@ stdcall KsDispatchSpecificProperty(ptr ptr)
+@ stdcall _KsEdit(ptr ptr long long long)
+@ stdcall KsEnableEvent(ptr long ptr ptr long ptr)
+@ stdcall KsEnableEventWithAllocator(ptr long ptr ptr long ptr ptr long)
+@ stdcall KsFastMethodHandler(ptr ptr long ptr long ptr long ptr)
+@ stdcall KsFastPropertyHandler(ptr ptr long ptr long ptr long ptr)
+@ stdcall KsFilterAcquireProcessingMutex(ptr)
+@ stdcall KsFilterAddTopologyConnections(ptr long ptr)
+@ stdcall KsFilterAttemptProcessing(ptr long)
+@ stdcall KsFilterCreateNode(ptr ptr ptr)
+@ stdcall KsFilterCreatePinFactory(ptr ptr ptr)
+@ stdcall KsFilterFactoryAddCreateItem(ptr ptr ptr long)
+@ stdcall KsFilterFactoryGetSymbolicLink(ptr)
+@ stdcall KsFilterFactorySetDeviceClassesState(ptr long)
+@ stdcall KsFilterFactoryUpdateCacheData(ptr ptr)
+@ stdcall KsFilterGetAndGate(ptr)
+@ stdcall KsFilterGetChildPinCount(ptr long)
+@ stdcall KsFilterGetFirstChildPin(ptr long)
+@ stdcall KsFilterRegisterPowerCallbacks(ptr ptr ptr)
+@ stdcall KsFilterReleaseProcessingMutex(ptr)
@ stdcall KsForwardAndCatchIrp(ptr ptr ptr long)
@ stdcall KsForwardIrp(ptr ptr long)
+@ stdcall KsFreeDefaultClock(ptr)
@ stdcall KsFreeDeviceHeader(ptr)
+@ stdcall KsFreeEventList(ptr ptr long ptr)
+@ stdcall KsFreeObjectBag(ptr)
+@ stdcall KsFreeObjectCreateItem(ptr ptr)
+@ stdcall KsFreeObjectCreateItemsByContext(ptr ptr)
@ stdcall KsFreeObjectHeader(ptr)
-@ stdcall KsGetChildCreateParameter(ptr ptr)
+@ stdcall KsGenerateDataEvent(ptr long ptr)
+@ stdcall KsGenerateEvent(ptr)
+@ stdcall KsGenerateEventList(ptr long ptr long ptr)
+@ stdcall KsGenerateEvents(ptr ptr long long ptr ptr ptr)
+@ stdcall KsGetBusEnumIdentifier(ptr)
+@ stdcall KsGetBusEnumParentFDOFromChildPDO(ptr ptr)
+@ stdcall KsGetBusEnumPnpDeviceObject(ptr ptr)
+@ stdcall KsGetDefaultClockState(ptr)
+@ stdcall KsGetDefaultClockTime(ptr)
+@ stdcall KsGetDevice(ptr)
+@ stdcall KsGetDeviceForDeviceObject(ptr)
+@ stdcall KsGetFilterFromIrp(ptr)
+@ stdcall KsGetFirstChild(ptr)
+@ stdcall KsGetImageNameAndResourceId(ptr ptr ptr ptr)
+@ stdcall KsGetNextSibling(ptr)
+@ stdcall KsGetNodeIdFromIrp(ptr)
+@ stdcall KsGetObjectFromFileObject(ptr)
+@ stdcall KsGetObjectTypeFromFileObject(ptr)
+@ stdcall KsGetObjectTypeFromIrp(ptr)
+@ stdcall KsGetOuterUnknown(ptr)
+@ stdcall KsGetParent(ptr)
+@ stdcall KsGetPinFromIrp(ptr)
+@ stdcall KsHandleSizedListQuery(ptr long long ptr)
+;@ stdcall KsiDefaultClockAddMarkEvent
+@ stdcall KsIncrementCountedWorker(ptr)
+@ stdcall KsInitializeDevice(ptr ptr ptr ptr)
+@ stdcall KsInitializeDriver(ptr ptr ptr)
+@ stdcall KsInstallBusEnumInterface(ptr)
+;KsiPropertyDefaultClockGetCorrelatedPhysicalTime
+;KsiPropertyDefaultClockGetCorrelatedTime
+;KsiPropertyDefaultClockGetFunctionTable
+;KsiPropertyDefaultClockGetPhysicalTime
+;KsiPropertyDefaultClockGetResolution
+;KsiPropertyDefaultClockGetState
+;KsiPropertyDefaultClockGetTime
+;KsiQueryObjectCreateItemsPresent
+@ stdcall KsIsBusEnumChildDevice(ptr ptr)
+@ stdcall KsLoadResource(ptr long long long ptr ptr)
+@ stdcall KsMapModuleName(ptr ptr ptr ptr ptr)
+@ stdcall KsMergeAutomationTables(ptr ptr ptr ptr)
+@ stdcall KsMethodHandler(ptr long ptr)
+@ stdcall KsMethodHandlerWithAllocator(ptr long ptr ptr long)
@ stdcall KsMoveIrpsOnCancelableQueue(ptr ptr ptr ptr long ptr ptr)
+@ stdcall KsNullDriverUnload(ptr)
+@ stdcall KsPinAcquireProcessingMutex(ptr)
+@ stdcall KsPinAttachAndGate(ptr ptr)
+@ stdcall KsPinAttachOrGate(ptr ptr)
+@ stdcall KsPinAttemptProcessing(ptr long)
+@ stdcall KsPinDataIntersection(ptr ptr ptr long ptr ptr)
+@ stdcall KsPinGetAndGate(ptr)
+@ stdcall KsPinGetAvailableByteCount(ptr ptr ptr)
+@ stdcall KsPinGetConnectedFilterInterface(ptr ptr ptr)
+@ stdcall KsPinGetConnectedPinDeviceObject(ptr)
+@ stdcall KsPinGetConnectedPinFileObject(ptr)
+@ stdcall KsPinGetConnectedPinInterface(ptr ptr ptr)
+@ stdcall KsPinGetCopyRelationships(ptr ptr ptr)
+@ stdcall KsPinGetFirstCloneStreamPointer(ptr)
+@ stdcall KsPinGetLeadingEdgeStreamPointer(ptr long)
+@ stdcall KsPinGetNextSiblingPin(ptr)
+@ stdcall KsPinGetParentFilter(ptr)
+@ stdcall KsPinGetReferenceClockInterface(ptr ptr)
+@ stdcall KsPinGetTrailingEdgeStreamPointer(ptr ptr)
+@ stdcall KsPinPropertyHandler(ptr ptr ptr long ptr)
+@ stdcall KsPinRegisterFrameReturnCallback(ptr ptr)
+@ stdcall KsPinRegisterHandshakeCallback(ptr ptr)
+@ stdcall KsPinRegisterIrpCompletionCallback(ptr ptr)
+@ stdcall KsPinRegisterPowerCallbacks(ptr ptr ptr)
+@ stdcall KsPinReleaseProcessingMutex(ptr)
+;@ stdcall KsPinSetPinClockTime(ptr long)
+@ stdcall KsPinSubmitFrame(ptr ptr long ptr ptr)
+@ stdcall KsPinSubmitFrameMdl(ptr ptr ptr ptr)
@ stdcall KsProbeStreamIrp(ptr long long)
+@ stdcall KsProcessPinUpdate(ptr)
+@ stdcall KsPropertyHandler(ptr long ptr)
+@ stdcall KsPropertyHandlerWithAllocator(ptr long ptr ptr long)
+@ stdcall KsQueryDevicePnpObject(ptr)
@ stdcall KsQueryInformationFile(ptr ptr long long)
@ stdcall KsQueryObjectAccessMask(ptr)
@ stdcall KsQueryObjectCreateItem(ptr)
+@ stdcall KsQueueWorkItem(ptr ptr)
@ stdcall KsReadFile(ptr ptr ptr ptr ptr long long long)
+@ stdcall KsRecalculateStackDepth(ptr long)
+@ stdcall KsReferenceBusObject(ptr)
+@ stdcall KsReferenceSoftwareBusObject(ptr)
+@ stdcall KsRegisterAggregatedClientUnknown(ptr ptr)
+@ stdcall KsRegisterCountedWorker(long ptr ptr)
+@ stdcall KsRegisterFilterWithNoKSPins(ptr ptr long ptr ptr ptr)
+@ stdcall KsRegisterWorker(long ptr)
+@ stdcall KsReleaseControl(ptr)
+@ stdcall KsReleaseDevice(ptr)
+@ stdcall KsReleaseDeviceSecurityLock(ptr)
@ stdcall KsReleaseIrpOnCancelableQueue(ptr ptr)
+@ stdcall KsRemoveBusEnumInterface(ptr)
@ stdcall KsRemoveIrpFromCancelableQueue(ptr ptr long long)
+@ stdcall KsRemoveItemFromObjectBag(ptr ptr long)
@ stdcall KsRemoveSpecificIrpFromCancelableQueue(ptr)
+@ stdcall KsServiceBusEnumCreateRequest(ptr ptr)
+@ stdcall KsServiceBusEnumPnpRequest(ptr ptr)
+@ stdcall KsSetDefaultClockState(ptr long)
+;@ stdcall KsSetDefaultClockTime(ptr long)
+@ stdcall KsSetDevicePnpAndBaseObject(ptr ptr ptr)
@ stdcall KsSetInformationFile(ptr ptr long long)
@ stdcall KsSetMajorFunctionHandler(ptr long)
-@ stdcall KsStreamIo(ptr ptr ptr ptr ptr long ptr ptr long long long)
-@ stdcall KsWriteFile(ptr ptr ptr ptr ptr long long long)
-
-@ stdcall KsRegisterWorker(long ptr)
-@ stdcall KsUnregisterWorker(ptr)
-@ stdcall KsRegisterCountedWorker(long ptr ptr)
-@ stdcall KsDecrementCountedWorker(ptr)
-@ stdcall KsIncrementCountedWorker(ptr)
-@ stdcall KsQueueWorkItem(ptr ptr)
-
-@ stdcall KsCacheMedium(ptr ptr long)
-@ stdcall KsDefaultDispatchPnp(ptr ptr)
-@ stdcall KsSetDevicePnpAndBaseObject(ptr ptr ptr)
-@ stdcall KsDefaultDispatchPower(ptr ptr)
@ stdcall KsSetPowerDispatch(ptr ptr ptr)
-@ stdcall KsReferenceBusObject(ptr)
-@ stdcall KsDereferenceBusObject(ptr)
-@ stdcall KsFreeObjectCreateItem(ptr ptr)
-@ stdcall KsFreeObjectCreateItemsByContext(ptr ptr)
-@ stdcall KsLoadResource(ptr long ptr long ptr ptr)
-@ stdcall KsNullDriverUnload(ptr)
-@ stdcall KsPinDataIntersectionEx(ptr ptr ptr long ptr long ptr ptr)
-@ stdcall KsQueryDevicePnpObject(ptr)
-@ stdcall KsRecalculateStackDepth(ptr long)
@ stdcall KsSetTargetDeviceObject(ptr ptr)
@ stdcall KsSetTargetState(ptr long)
+@ stdcall KsStreamIo(ptr ptr ptr ptr ptr long ptr ptr long long long)
+@ stdcall KsStreamPointerAdvance(ptr)
+@ stdcall KsStreamPointerAdvanceOffsets(ptr long long long)
+@ stdcall KsStreamPointerAdvanceOffsetsAndUnlock(ptr long long long)
+@ stdcall KsStreamPointerCancelTimeout(ptr)
+@ stdcall KsStreamPointerClone(ptr ptr long ptr)
+@ stdcall KsStreamPointerDelete(ptr)
+@ stdcall KsStreamPointerGetIrp(ptr ptr ptr)
+@ stdcall KsStreamPointerGetMdl(ptr)
+@ stdcall KsStreamPointerGetNextClone(ptr)
+@ stdcall KsStreamPointerLock(ptr)
+;@ stdcall KsStreamPointerScheduleTimeout(ptr ptr longlong)
+@ stdcall KsStreamPointerSetStatusCode(ptr long)
+@ stdcall KsStreamPointerUnlock(ptr long)
@ stdcall KsSynchronousIoControlDevice(ptr long long ptr long ptr long ptr)
-@ stdcall KsInitializeDriver(ptr ptr ptr)
-
-; Kernel COM
-@ stdcall KoCreateInstance(ptr ptr long ptr ptr)
+@ stdcall KsTerminateDevice(ptr)
+@ stdcall KsTopologyPropertyHandler(ptr ptr ptr ptr)
+@ stdcall KsUnregisterWorker(ptr)
+@ stdcall KsUnserializeObjectPropertiesFromRegistry(ptr ptr ptr)
+@ stdcall KsValidateAllocatorCreateRequest(ptr ptr)
+@ stdcall KsValidateAllocatorFramingEx(ptr long ptr)
+@ stdcall KsValidateClockCreateRequest(ptr ptr)
+@ stdcall KsValidateConnectRequest(ptr long ptr ptr)
+@ stdcall KsValidateTopologyNodeCreateRequest(ptr ptr ptr)
+@ stdcall KsWriteFile(ptr ptr ptr ptr ptr long long long)
diff --git a/reactos/drivers/ksfilter/ks/misc.c b/reactos/drivers/ksfilter/ks/misc.c
index 6f6218d069a..b7af2bc67b2 100644
--- a/reactos/drivers/ksfilter/ks/misc.c
+++ b/reactos/drivers/ksfilter/ks/misc.c
@@ -139,3 +139,68 @@ KspCopyCreateRequest(
return STATUS_SUCCESS;
}
+/*
+ @unimplemented
+*/
+KSDDKAPI
+PVOID
+NTAPI
+KsGetObjectFromFileObject(
+ IN PFILE_OBJECT FileObject)
+{
+ UNIMPLEMENTED
+ return NULL;
+}
+
+/*
+ @unimplemented
+*/
+KSDDKAPI
+KSOBJECTTYPE
+NTAPI
+KsGetObjectTypeFromFileObject(
+ IN PFILE_OBJECT FileObject)
+{
+ UNIMPLEMENTED
+ return (KSOBJECTTYPE)-1;
+}
+
+/*
+ @unimplemented
+*/
+KSOBJECTTYPE
+NTAPI
+KsGetObjectTypeFromIrp(
+ IN PIRP Irp)
+{
+ UNIMPLEMENTED
+ return (KSOBJECTTYPE)-1;
+}
+
+/*
+ @unimplemented
+*/
+PUNKNOWN
+NTAPI
+KsGetOuterUnknown(
+ IN PVOID Object)
+{
+ UNIMPLEMENTED
+ return NULL;
+
+}
+
+/*
+ @unimplemented
+*/
+KSDDKAPI
+PVOID
+NTAPI
+KsGetParent(
+ IN PVOID Object)
+{
+ UNIMPLEMENTED
+ return NULL;
+}
+
+
diff --git a/reactos/drivers/ksfilter/ks/pin.c b/reactos/drivers/ksfilter/ks/pin.c
new file mode 100644
index 00000000000..1a1ef8d3c07
--- /dev/null
+++ b/reactos/drivers/ksfilter/ks/pin.c
@@ -0,0 +1,521 @@
+/*
+ * COPYRIGHT: See COPYING in the top level directory
+ * PROJECT: ReactOS Kernel Streaming
+ * FILE: drivers/ksfilter/ks/worker.c
+ * PURPOSE: KS pin functions
+ * PROGRAMMER: Johannes Anderwald
+ */
+
+
+#include "priv.h"
+
+/*
+ @unimplemented
+*/
+VOID
+NTAPI
+KsPinAcquireProcessingMutex(
+ IN PKSPIN Pin)
+{
+ UNIMPLEMENTED
+}
+
+/*
+ @unimplemented
+*/
+VOID
+NTAPI
+KsPinAttachAndGate(
+ IN PKSPIN Pin,
+ IN PKSGATE AndGate OPTIONAL)
+{
+ UNIMPLEMENTED
+}
+
+/*
+ @unimplemented
+*/
+VOID
+NTAPI
+KsPinAttachOrGate(
+ IN PKSPIN Pin,
+ IN PKSGATE OrGate OPTIONAL)
+{
+ UNIMPLEMENTED
+}
+/*
+ @unimplemented
+*/
+VOID
+NTAPI
+KsPinAttemptProcessing(
+ IN PKSPIN Pin,
+ IN BOOLEAN Asynchronous)
+{
+ UNIMPLEMENTED
+}
+
+/*
+ @unimplemented
+*/
+NTSTATUS
+NTAPI
+KsPinGetAvailableByteCount(
+ IN PKSPIN Pin,
+ OUT PLONG InputDataBytes OPTIONAL,
+ OUT PLONG OutputBufferBytes OPTIONAL)
+{
+ UNIMPLEMENTED
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+/*
+ @unimplemented
+*/
+NTSTATUS
+NTAPI
+KsPinGetConnectedFilterInterface(
+ IN PKSPIN Pin,
+ IN const GUID* InterfaceId,
+ OUT PVOID* Interface)
+{
+ UNIMPLEMENTED
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+/*
+ @unimplemented
+*/
+PKSGATE
+NTAPI
+KsPinGetAndGate(
+ IN PKSPIN Pin)
+{
+ UNIMPLEMENTED
+ return NULL;
+}
+
+/*
+ @unimplemented
+*/
+PDEVICE_OBJECT
+NTAPI
+KsPinGetConnectedPinDeviceObject(
+ IN PKSPIN Pin)
+{
+ UNIMPLEMENTED
+ return NULL;
+}
+
+/*
+ @unimplemented
+*/
+PFILE_OBJECT
+NTAPI
+KsPinGetConnectedPinFileObject(
+ IN PKSPIN Pin)
+{
+ UNIMPLEMENTED
+ return NULL;
+}
+
+/*
+ @unimplemented
+*/
+NTSTATUS
+NTAPI
+KsPinGetConnectedPinInterface(
+ IN PKSPIN Pin,
+ IN const GUID* InterfaceId,
+ OUT PVOID* Interface)
+{
+ UNIMPLEMENTED
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ @unimplemented
+*/
+VOID
+NTAPI
+KsPinGetCopyRelationships(
+ IN PKSPIN Pin,
+ OUT PKSPIN* CopySource,
+ OUT PKSPIN* DelegateBranch)
+{
+ UNIMPLEMENTED
+}
+
+/*
+ @unimplemented
+*/
+PKSPIN
+NTAPI
+KsPinGetNextSiblingPin(
+ IN PKSPIN Pin)
+{
+ UNIMPLEMENTED
+ return NULL;
+}
+
+/*
+ @unimplemented
+*/
+PKSFILTER
+NTAPI
+KsPinGetParentFilter(
+ IN PKSPIN Pin)
+{
+ UNIMPLEMENTED
+ return NULL;
+}
+
+/*
+ @unimplemented
+*/
+NTSTATUS
+NTAPI
+ KsPinGetReferenceClockInterface(
+ IN PKSPIN Pin,
+ OUT PIKSREFERENCECLOCK* Interface)
+{
+ UNIMPLEMENTED
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ @unimplemented
+*/
+VOID
+NTAPI
+KsPinRegisterFrameReturnCallback(
+ IN PKSPIN Pin,
+ IN PFNKSPINFRAMERETURN FrameReturn)
+{
+ UNIMPLEMENTED
+}
+
+/*
+ @unimplemented
+*/
+VOID
+NTAPI
+KsPinRegisterHandshakeCallback(
+ IN PKSPIN Pin,
+ IN PFNKSPINHANDSHAKE Handshake)
+{
+ UNIMPLEMENTED
+}
+
+/*
+ @unimplemented
+*/
+VOID
+NTAPI
+KsPinRegisterIrpCompletionCallback(
+ IN PKSPIN Pin,
+ IN PFNKSPINIRPCOMPLETION IrpCompletion)
+{
+ UNIMPLEMENTED
+}
+
+/*
+ @unimplemented
+*/
+VOID
+NTAPI
+KsPinRegisterPowerCallbacks(
+ IN PKSPIN Pin,
+ IN PFNKSPINPOWER Sleep OPTIONAL,
+ IN PFNKSPINPOWER Wake OPTIONAL)
+{
+ UNIMPLEMENTED
+}
+
+/*
+ @unimplemented
+*/
+VOID
+NTAPI
+KsPinReleaseProcessingMutex(
+ IN PKSPIN Pin)
+{
+ UNIMPLEMENTED
+}
+
+/*
+ @unimplemented
+*/
+VOID
+NTAPI
+KsPinSetPinClockTime(
+ IN PKSPIN Pin,
+ IN LONGLONG Time)
+{
+ UNIMPLEMENTED
+}
+
+/*
+ @unimplemented
+*/
+NTSTATUS
+NTAPI
+KsPinSubmitFrame(
+ IN PKSPIN Pin,
+ IN PVOID Data OPTIONAL,
+ IN ULONG Size OPTIONAL,
+ IN PKSSTREAM_HEADER StreamHeader OPTIONAL,
+ IN PVOID Context OPTIONAL)
+{
+ UNIMPLEMENTED
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ @unimplemented
+*/
+KSDDKAPI
+NTSTATUS
+NTAPI
+KsPinSubmitFrameMdl(
+ IN PKSPIN Pin,
+ IN PMDL Mdl OPTIONAL,
+ IN PKSSTREAM_HEADER StreamHeader OPTIONAL,
+ IN PVOID Context OPTIONAL)
+{
+ UNIMPLEMENTED
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ @unimplemented
+*/
+KSDDKAPI
+BOOLEAN
+NTAPI
+KsProcessPinUpdate(
+ IN PKSPROCESSPIN ProcessPin)
+{
+ UNIMPLEMENTED
+ return FALSE;
+}
+
+/*
+ @unimplemented
+*/
+KSDDKAPI
+PKSSTREAM_POINTER
+NTAPI
+KsPinGetLeadingEdgeStreamPointer(
+ IN PKSPIN Pin,
+ IN KSSTREAM_POINTER_STATE State)
+{
+ UNIMPLEMENTED
+ return NULL;
+}
+
+/*
+ @unimplemented
+*/
+KSDDKAPI
+PKSSTREAM_POINTER
+NTAPI
+KsPinGetTrailingEdgeStreamPointer(
+ IN PKSPIN Pin,
+ IN KSSTREAM_POINTER_STATE State)
+{
+ UNIMPLEMENTED
+ return NULL;
+}
+
+/*
+ @unimplemented
+*/
+KSDDKAPI
+NTSTATUS
+NTAPI
+KsStreamPointerSetStatusCode(
+ IN PKSSTREAM_POINTER StreamPointer,
+ IN NTSTATUS Status)
+{
+ UNIMPLEMENTED
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ @unimplemented
+*/
+KSDDKAPI
+NTSTATUS
+NTAPI
+KsStreamPointerLock(
+ IN PKSSTREAM_POINTER StreamPointer)
+{
+ UNIMPLEMENTED
+ return STATUS_UNSUCCESSFUL;
+}
+
+/*
+ @unimplemented
+*/
+KSDDKAPI
+VOID
+NTAPI
+KsStreamPointerUnlock(
+ IN PKSSTREAM_POINTER StreamPointer,
+ IN BOOLEAN Eject)
+{
+ UNIMPLEMENTED
+}
+
+/*
+ @unimplemented
+*/
+KSDDKAPI
+VOID
+NTAPI
+KsStreamPointerAdvanceOffsetsAndUnlock(
+ IN PKSSTREAM_POINTER StreamPointer,
+ IN ULONG InUsed,
+ IN ULONG OutUsed,
+ IN BOOLEAN Eject)
+{
+ UNIMPLEMENTED
+}
+
+/*
+ @unimplemented
+*/
+KSDDKAPI
+VOID
+NTAPI
+KsStreamPointerDelete(
+ IN PKSSTREAM_POINTER StreamPointer)
+{
+ UNIMPLEMENTED
+}
+
+/*
+ @unimplemented
+*/
+KSDDKAPI
+NTSTATUS
+NTAPI
+KsStreamPointerClone(
+ IN PKSSTREAM_POINTER StreamPointer,
+ IN PFNKSSTREAMPOINTER CancelCallback OPTIONAL,
+ IN ULONG ContextSize,
+ OUT PKSSTREAM_POINTER* CloneStreamPointer)
+{
+ UNIMPLEMENTED
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+/*
+ @unimplemented
+*/
+KSDDKAPI
+NTSTATUS
+NTAPI
+KsStreamPointerAdvanceOffsets(
+ IN PKSSTREAM_POINTER StreamPointer,
+ IN ULONG InUsed,
+ IN ULONG OutUsed,
+ IN BOOLEAN Eject)
+{
+ UNIMPLEMENTED
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+/*
+ @unimplemented
+*/
+KSDDKAPI
+NTSTATUS
+NTAPI
+KsStreamPointerAdvance(
+ IN PKSSTREAM_POINTER StreamPointer)
+{
+ UNIMPLEMENTED
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+/*
+ @unimplemented
+*/
+KSDDKAPI
+PMDL
+NTAPI
+KsStreamPointerGetMdl(
+ IN PKSSTREAM_POINTER StreamPointer)
+{
+ UNIMPLEMENTED
+ return NULL;
+}
+
+/*
+ @unimplemented
+*/
+KSDDKAPI
+PIRP
+NTAPI
+KsStreamPointerGetIrp(
+ IN PKSSTREAM_POINTER StreamPointer,
+ OUT PBOOLEAN FirstFrameInIrp OPTIONAL,
+ OUT PBOOLEAN LastFrameInIrp OPTIONAL)
+{
+ UNIMPLEMENTED
+ return NULL;
+}
+
+/*
+ @unimplemented
+*/
+KSDDKAPI
+VOID
+NTAPI
+KsStreamPointerScheduleTimeout(
+ IN PKSSTREAM_POINTER StreamPointer,
+ IN PFNKSSTREAMPOINTER Callback,
+ IN ULONGLONG Interval)
+{
+ UNIMPLEMENTED
+}
+
+/*
+ @unimplemented
+*/
+KSDDKAPI
+VOID
+NTAPI
+KsStreamPointerCancelTimeout(
+ IN PKSSTREAM_POINTER StreamPointer)
+{
+ UNIMPLEMENTED
+}
+
+/*
+ @unimplemented
+*/
+KSDDKAPI
+PKSSTREAM_POINTER
+NTAPI
+KsPinGetFirstCloneStreamPointer(
+ IN PKSPIN Pin)
+{
+ UNIMPLEMENTED
+ return NULL;
+}
+
+/*
+ @unimplemented
+*/
+KSDDKAPI
+PKSSTREAM_POINTER
+NTAPI
+KsStreamPointerGetNextClone(
+ IN PKSSTREAM_POINTER StreamPointer)
+{
+ UNIMPLEMENTED
+ return NULL;
+}