5 KoCreateObjectHandler CreateObjectHandler
;
6 }KO_DRIVER_EXTENSION
, *PKO_DRIVER_EXTENSION
;
10 const KSDEVICE_DESCRIPTOR
*Descriptor
;
11 }KS_DRIVER_EXTENSION
, *PKS_DRIVER_EXTENSION
;
15 KSOBJECT_HEADER ObjectHeader
;
16 KSOBJECT_CREATE_ITEM CreateItem
;
17 }KO_OBJECT_HEADER
, *PKO_OBJECT_HEADER
;
22 KSDISPATCH_TABLE DispatchTable
;
28 UNICODE_STRING ObjectClass
;
32 PDEVICE_OBJECT TargetDevice
;
33 LIST_ENTRY TargetDeviceListEntry
;
35 PDEVICE_OBJECT ParentDeviceObject
;
37 PFNKSCONTEXT_DISPATCH PowerDispatch
;
39 LIST_ENTRY PowerDispatchEntry
;
40 PKSOBJECT_CREATE_ITEM OriginalCreateItem
;
41 ACCESS_MASK AccessMask
;
43 }KSIOBJECT_HEADER
, *PKSIOBJECT_HEADER
;
48 PKSOBJECT_CREATE_ITEM CreateItem
;
49 PFNKSITEMFREECALLBACK ItemFreeCallback
;
51 LIST_ENTRY ObjectItemList
;
52 }CREATE_ITEM_ENTRY
, *PCREATE_ITEM_ENTRY
;
58 PRKMUTEX ControlMutex
;
60 KSPIN_LOCK EventListLock
;
61 PUNKNOWN ClientAggregate
;
62 PUNKNOWN OuterUnknown
;
66 PKSFILTERFACTORY KsFilterFactory
;
72 PKSFILTERFACTORY FilterFactory
;
79 PKSFILTERFACTORY FilterFactory
;
83 }KSBASIC_HEADER
, *PKSBASIC_HEADER
;
87 KSBASIC_HEADER BasicHeader
;
91 ERESOURCE SecurityLock
;
97 PDEVICE_OBJECT PnpDeviceObject
;
98 PDEVICE_OBJECT BaseDevice
;
100 KSTARGET_STATE TargetState
;
101 LIST_ENTRY TargetDeviceList
;
106 LIST_ENTRY PowerDispatchList
;
107 LIST_ENTRY ObjectBags
;
109 PADAPTER_OBJECT AdapterObject
;
110 ULONG MaxMappingsByteCount
;
111 ULONG MappingTableStride
;
113 }KSIDEVICE_HEADER
, *PKSIDEVICE_HEADER
;
117 PKSIDEVICE_HEADER DeviceHeader
;
119 }DEVICE_EXTENSION
, *PDEVICE_EXTENSION
;
124 UNICODE_STRING SymbolicLink
;
125 CLSID DeviceInterfaceClass
;
126 }SYMBOLIC_LINK_ENTRY
, *PSYMBOLIC_LINK_ENTRY
;
130 PKSIDEVICE_HEADER DeviceHeader
;
131 PIO_WORKITEM WorkItem
;
132 }PNP_POSTSTART_CONTEXT
, *PPNP_POSTSTART_CONTEXT
;
137 PFILE_OBJECT FileObject
;
138 PKSEVENT_ENTRY EventEntry
;
140 }KSEVENT_CTX
, *PKSEVENT_CTX
;
142 typedef BOOLEAN (NTAPI
*PKSEVENT_SYNCHRONIZED_ROUTINE
)(PKSEVENT_CTX Context
);
144 struct __BUS_ENUM_DEVICE_EXTENSION__
;
145 struct __BUS_DEVICE_ENTRY__
;
153 PDEVICE_OBJECT DeviceObject
;
154 ULONG DeviceReferenceCount
;
158 struct __BUS_DEVICE_ENTRY__
* DeviceEntry
;
161 struct __BUS_ENUM_DEVICE_EXTENSION__
*BusDeviceExtension
;
162 ULONG DeviceObjectReferenceCount
;
163 }COMMON_DEVICE_EXTENSION
, *PCOMMON_DEVICE_EXTENSION
;
167 PCOMMON_DEVICE_EXTENSION Ext
;
168 }DEV_EXTENSION
, *PDEV_EXTENSION
;
174 UNICODE_STRING SymbolicLink
;
175 }BUS_INSTANCE_ENTRY
, *PBUS_INSTANCE_ENTRY
;
181 NotStarted
= 0, // Not started yet
182 Started
, // Device has received the START_DEVICE IRP
183 StopPending
, // Device has received the QUERY_STOP IRP
184 Stopped
, // Device has received the STOP_DEVICE IRP
185 RemovePending
, // Device has received the QUERY_REMOVE IRP
186 SurpriseRemovePending
, // Device has received the SURPRISE_REMOVE IRP
191 typedef struct __BUS_DEVICE_ENTRY__
194 LIST_ENTRY DeviceInterfaceList
;
195 LIST_ENTRY IrpPendingList
;
197 DEVICE_STATE DeviceState
;
199 LPWSTR PDODeviceName
;
202 LARGE_INTEGER TimeCreated
;
203 LARGE_INTEGER TimeExpired
;
205 }BUS_DEVICE_ENTRY
, *PBUS_DEVICE_ENTRY
;
207 typedef struct __BUS_ENUM_DEVICE_EXTENSION__
209 COMMON_DEVICE_EXTENSION Common
;
212 UNICODE_STRING DeviceInterfaceLink
;
213 PDEVICE_OBJECT PhysicalDeviceObject
;
214 PDEVICE_OBJECT PnpDeviceObject
;
215 PDEVICE_OBJECT BusDeviceObject
;
219 WORK_QUEUE_ITEM WorkItem
;
220 ULONG DeviceAttached
;
221 UNICODE_STRING ServicePath
;
223 WCHAR BusIdentifier
[1];
224 }BUS_ENUM_DEVICE_EXTENSION
, *PBUS_ENUM_DEVICE_EXTENSION
;
229 PBUS_ENUM_DEVICE_EXTENSION BusDeviceExtension
;
232 WORK_QUEUE_ITEM WorkItem
;
233 }BUS_INSTALL_ENUM_CONTEXT
, *PBUS_INSTALL_ENUM_CONTEXT
;
245 }KSPCACHE_DESCRIPTOR
, *PKSPCACHE_DESCRIPTOR
;
253 }KSPCACHE_FILTER_HEADER
, *PKSPCACHE_FILTER_HEADER
;
263 }KSPCACHE_PIN_HEADER
, *PKSPCACHE_PIN_HEADER
;
272 }KSPCACHE_DATARANGE
, *PKSPCACHE_DATARANGE
;