8 KoCreateObjectHandler CreateObjectHandler
;
9 }KO_DRIVER_EXTENSION
, *PKO_DRIVER_EXTENSION
;
13 const KSDEVICE_DESCRIPTOR
*Descriptor
;
14 }KS_DRIVER_EXTENSION
, *PKS_DRIVER_EXTENSION
;
18 KSOBJECT_HEADER ObjectHeader
;
19 KSOBJECT_CREATE_ITEM CreateItem
;
20 }KO_OBJECT_HEADER
, *PKO_OBJECT_HEADER
;
25 KSDISPATCH_TABLE DispatchTable
;
31 UNICODE_STRING ObjectClass
;
35 PDEVICE_OBJECT TargetDevice
;
36 LIST_ENTRY TargetDeviceListEntry
;
38 PDEVICE_OBJECT ParentDeviceObject
;
40 PFNKSCONTEXT_DISPATCH PowerDispatch
;
42 LIST_ENTRY PowerDispatchEntry
;
43 PKSOBJECT_CREATE_ITEM OriginalCreateItem
;
44 ACCESS_MASK AccessMask
;
46 }KSIOBJECT_HEADER
, *PKSIOBJECT_HEADER
;
51 PKSOBJECT_CREATE_ITEM CreateItem
;
52 PFNKSITEMFREECALLBACK ItemFreeCallback
;
54 LIST_ENTRY ObjectItemList
;
55 }CREATE_ITEM_ENTRY
, *PCREATE_ITEM_ENTRY
;
61 PRKMUTEX ControlMutex
;
63 KSPIN_LOCK EventListLock
;
64 PUNKNOWN ClientAggregate
;
65 PUNKNOWN OuterUnknown
;
69 PKSFILTERFACTORY KsFilterFactory
;
75 PKSFILTERFACTORY FilterFactory
;
82 PKSFILTERFACTORY FilterFactory
;
86 }KSBASIC_HEADER
, *PKSBASIC_HEADER
;
90 KSBASIC_HEADER BasicHeader
;
94 ERESOURCE SecurityLock
;
100 PDEVICE_OBJECT PnpDeviceObject
;
101 PDEVICE_OBJECT BaseDevice
;
103 KSTARGET_STATE TargetState
;
104 LIST_ENTRY TargetDeviceList
;
109 LIST_ENTRY PowerDispatchList
;
110 LIST_ENTRY ObjectBags
;
112 PADAPTER_OBJECT AdapterObject
;
113 ULONG MaxMappingsByteCount
;
114 ULONG MappingTableStride
;
116 }KSIDEVICE_HEADER
, *PKSIDEVICE_HEADER
;
120 PKSIDEVICE_HEADER DeviceHeader
;
122 }DEVICE_EXTENSION
, *PDEVICE_EXTENSION
;
127 UNICODE_STRING SymbolicLink
;
128 CLSID DeviceInterfaceClass
;
129 }SYMBOLIC_LINK_ENTRY
, *PSYMBOLIC_LINK_ENTRY
;
133 PKSIDEVICE_HEADER DeviceHeader
;
134 PIO_WORKITEM WorkItem
;
135 }PNP_POSTSTART_CONTEXT
, *PPNP_POSTSTART_CONTEXT
;
140 PFILE_OBJECT FileObject
;
141 PKSEVENT_ENTRY EventEntry
;
143 }KSEVENT_CTX
, *PKSEVENT_CTX
;
145 typedef BOOLEAN (NTAPI
*PKSEVENT_SYNCHRONIZED_ROUTINE
)(PKSEVENT_CTX Context
);
147 struct __BUS_ENUM_DEVICE_EXTENSION__
;
148 struct __BUS_DEVICE_ENTRY__
;
156 PDEVICE_OBJECT DeviceObject
;
157 ULONG DeviceReferenceCount
;
161 struct __BUS_DEVICE_ENTRY__
* DeviceEntry
;
164 struct __BUS_ENUM_DEVICE_EXTENSION__
*BusDeviceExtension
;
165 ULONG DeviceObjectReferenceCount
;
166 }COMMON_DEVICE_EXTENSION
, *PCOMMON_DEVICE_EXTENSION
;
170 PCOMMON_DEVICE_EXTENSION Ext
;
171 }DEV_EXTENSION
, *PDEV_EXTENSION
;
177 UNICODE_STRING SymbolicLink
;
178 }BUS_INSTANCE_ENTRY
, *PBUS_INSTANCE_ENTRY
;
184 NotStarted
= 0, // Not started yet
185 Started
, // Device has received the START_DEVICE IRP
186 StopPending
, // Device has received the QUERY_STOP IRP
187 Stopped
, // Device has received the STOP_DEVICE IRP
188 RemovePending
, // Device has received the QUERY_REMOVE IRP
189 SurpriseRemovePending
, // Device has received the SURPRISE_REMOVE IRP
194 typedef struct __BUS_DEVICE_ENTRY__
197 LIST_ENTRY DeviceInterfaceList
;
198 LIST_ENTRY IrpPendingList
;
200 DEVICE_STATE DeviceState
;
202 LPWSTR PDODeviceName
;
205 LARGE_INTEGER TimeCreated
;
206 LARGE_INTEGER TimeExpired
;
208 }BUS_DEVICE_ENTRY
, *PBUS_DEVICE_ENTRY
;
210 typedef struct __BUS_ENUM_DEVICE_EXTENSION__
212 COMMON_DEVICE_EXTENSION Common
;
215 UNICODE_STRING DeviceInterfaceLink
;
216 PDEVICE_OBJECT PhysicalDeviceObject
;
217 PDEVICE_OBJECT PnpDeviceObject
;
218 PDEVICE_OBJECT BusDeviceObject
;
222 WORK_QUEUE_ITEM WorkItem
;
223 ULONG DeviceAttached
;
224 UNICODE_STRING ServicePath
;
226 WCHAR BusIdentifier
[1];
227 }BUS_ENUM_DEVICE_EXTENSION
, *PBUS_ENUM_DEVICE_EXTENSION
;
232 PBUS_ENUM_DEVICE_EXTENSION BusDeviceExtension
;
235 WORK_QUEUE_ITEM WorkItem
;
236 }BUS_INSTALL_ENUM_CONTEXT
, *PBUS_INSTALL_ENUM_CONTEXT
;
248 }KSPCACHE_DESCRIPTOR
, *PKSPCACHE_DESCRIPTOR
;
256 }KSPCACHE_FILTER_HEADER
, *PKSPCACHE_FILTER_HEADER
;
266 }KSPCACHE_PIN_HEADER
, *PKSPCACHE_PIN_HEADER
;
275 }KSPCACHE_DATARANGE
, *PKSPCACHE_DATARANGE
;