[KS]
[reactos.git] / reactos / drivers / ksfilter / ks / kstypes.h
index 473c64a..0e64312 100644 (file)
@@ -1,5 +1,4 @@
-#ifndef KSTYPES_H__
-#define KSTYPES_H__
+#pragma once
 
 #include <ntddk.h>
 #include <ks.h>
@@ -59,23 +58,37 @@ typedef struct
 {
     KSOBJECTTYPE Type;
     PKSDEVICE KsDevice;
-    KMUTEX ControlMutex;
+    PRKMUTEX ControlMutex;
     LIST_ENTRY EventList;
     KSPIN_LOCK EventListLock;
-
+    PUNKNOWN ClientAggregate;
+    PUNKNOWN OuterUnknown;
     union
     {
         PKSDEVICE KsDevice;
         PKSFILTERFACTORY KsFilterFactory;
         PKSFILTER KsFilter;
     }Parent;
+
+    union
+    {
+        PKSFILTERFACTORY FilterFactory;
+        PKSFILTER Filter;
+        PKSPIN Pin;
+    }Next;
+
+    union
+    {
+        PKSFILTERFACTORY FilterFactory;
+        PKSFILTER Filter;
+    }FirstChild;
+
 }KSBASIC_HEADER, *PKSBASIC_HEADER;
 
 typedef struct
 {
     KSBASIC_HEADER BasicHeader;
     KSDEVICE KsDevice;
-    IKsDeviceVtbl *lpVtblIKsDevice;
 
     LONG ref;
     ERESOURCE SecurityLock;
@@ -91,11 +104,15 @@ typedef struct
     LIST_ENTRY TargetDeviceList;
 
     KMUTEX DeviceMutex;
-    KSDEVICE_DESCRIPTOR* Descriptor;
+    KMUTEX BagMutex;
 
     LIST_ENTRY PowerDispatchList;
     LIST_ENTRY ObjectBags;
 
+    PADAPTER_OBJECT AdapterObject;
+    ULONG MaxMappingsByteCount;
+    ULONG MappingTableStride;
+
 }KSIDEVICE_HEADER, *PKSIDEVICE_HEADER;
 
 typedef struct
@@ -108,6 +125,7 @@ typedef struct
 {
     LIST_ENTRY Entry;
     UNICODE_STRING SymbolicLink;
+    CLSID DeviceInterfaceClass;
 }SYMBOLIC_LINK_ENTRY, *PSYMBOLIC_LINK_ENTRY;
 
 typedef struct
@@ -132,4 +150,64 @@ typedef struct
 
 typedef BOOLEAN (NTAPI *PKSEVENT_SYNCHRONIZED_ROUTINE)(PKSEVENT_CTX Context);
 
-#endif
+typedef struct
+{
+    BOOLEAN Enabled;
+
+    PDEVICE_OBJECT PnpDeviceObject;
+    PDEVICE_OBJECT PhysicalDeviceObject;
+    PDEVICE_OBJECT BusDeviceObject;
+
+    UNICODE_STRING ServicePath;
+    UNICODE_STRING SymbolicLinkName;
+
+    WCHAR BusIdentifier[1];
+}BUS_ENUM_DEVICE_EXTENSION, *PBUS_ENUM_DEVICE_EXTENSION;
+
+typedef struct
+{
+    PUCHAR FilterData;
+    ULONG FilterLength;
+    ULONG FilterOffset;
+
+    PUCHAR DataCache;
+    ULONG DataLength;
+    ULONG DataOffset;
+
+}KSPCACHE_DESCRIPTOR, *PKSPCACHE_DESCRIPTOR;
+
+typedef struct
+{
+    DWORD dwVersion;
+    DWORD dwMerit;
+    DWORD dwPins;
+    DWORD dwUnused;
+}KSPCACHE_FILTER_HEADER, *PKSPCACHE_FILTER_HEADER;
+
+typedef struct
+{
+    ULONG Signature;
+    ULONG Flags;
+    ULONG Instances;
+    ULONG MediaTypes;
+    ULONG Mediums;
+    DWORD Category;
+}KSPCACHE_PIN_HEADER, *PKSPCACHE_PIN_HEADER;
+
+
+typedef struct
+{
+    ULONG Signature;
+    ULONG dwUnused;
+    ULONG OffsetMajor;
+    ULONG OffsetMinor;
+}KSPCACHE_DATARANGE, *PKSPCACHE_DATARANGE;
+
+
+typedef struct
+{
+    CLSID Medium;
+    ULONG dw1;
+    ULONG dw2;
+}KSPCACHE_MEDIUM;
+