{
KSOBJECTTYPE Type;
PKSDEVICE KsDevice;
- KMUTEX ControlMutex;
+ PRKMUTEX ControlMutex;
LIST_ENTRY EventList;
KSPIN_LOCK EventListLock;
+ PUNKNOWN ClientAggregate;
+ PUNKNOWN OuterUnknown;
union
{
PKSDEVICE KsDevice;
{
KSBASIC_HEADER BasicHeader;
KSDEVICE KsDevice;
- IKsDeviceVtbl *lpVtblIKsDevice;
LONG ref;
ERESOURCE SecurityLock;
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
{
LIST_ENTRY Entry;
UNICODE_STRING SymbolicLink;
+ CLSID DeviceInterfaceClass;
}SYMBOLIC_LINK_ENTRY, *PSYMBOLIC_LINK_ENTRY;
typedef struct
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;
+