allocators.c
[reactos.git] / reactos / drivers / ksfilter / ks / kstypes.h
1 #ifndef KSTYPES_H__
2 #define KSTYPES_H__
3
4 typedef struct
5 {
6 KSDISPATCH_TABLE DispatchTable;
7 KSOBJECTTYPE Type;
8 ULONG ItemCount;
9 PKSOBJECT_CREATE_ITEM CreateItem;
10
11 UNICODE_STRING ObjectClass;
12 PUNKNOWN Unknown;
13
14 PDEVICE_OBJECT TargetDevice;
15 LIST_ENTRY TargetDeviceListEntry;
16
17 PDEVICE_OBJECT ParentDeviceObject;
18
19 PFNKSCONTEXT_DISPATCH PowerDispatch;
20 PVOID PowerContext;
21 LIST_ENTRY PowerDispatchEntry;
22
23 }KSIOBJECT_HEADER, *PKSIOBJECT_HEADER;
24
25 typedef struct
26 {
27 PKSOBJECT_CREATE_ITEM CreateItem;
28 PFNKSITEMFREECALLBACK ItemFreeCallback;
29 LONG ReferenceCount;
30 }DEVICE_ITEM, *PDEVICE_ITEM;
31
32
33
34 typedef struct
35 {
36 IKsDeviceVtbl *lpVtblIKsDevice;
37 LONG ref;
38 ERESOURCE SecurityLock;
39
40 USHORT MaxItems;
41 DEVICE_ITEM *ItemList;
42
43 ULONG DeviceIndex;
44 KSPIN_LOCK ItemListLock;
45
46 PDEVICE_OBJECT PhysicalDeviceObject;
47 PDEVICE_OBJECT NextDeviceObject;
48
49 KSTARGET_STATE TargetState;
50 LIST_ENTRY TargetDeviceList;
51
52 KSDEVICE KsDevice;
53 KMUTEX DeviceMutex;
54 KSDEVICE_DESCRIPTOR* Descriptor;
55
56 LIST_ENTRY PowerDispatchList;
57
58 }KSIDEVICE_HEADER, *PKSIDEVICE_HEADER;
59
60
61 typedef struct
62 {
63 PKSIDEVICE_HEADER DeviceHeader;
64
65 }DEVICE_EXTENSION, *PDEVICE_EXTENSION;
66
67 typedef struct
68 {
69 LIST_ENTRY Entry;
70 PIRP Irp;
71 }QUEUE_ENTRY, *PQUEUE_ENTRY;
72
73 typedef struct
74 {
75 LIST_ENTRY Entry;
76 UNICODE_STRING SymbolicLink;
77 }SYMBOLIC_LINK_ENTRY, *PSYMBOLIC_LINK_ENTRY;
78
79 typedef struct
80 {
81 PKSIDEVICE_HEADER DeviceHeader;
82 PIO_WORKITEM WorkItem;
83 }PNP_POSTSTART_CONTEXT, *PPNP_POSTSTART_CONTEXT;
84
85
86 #endif