1 /*++
2 
3 Copyright (c) Microsoft. All rights reserved.
4 
5 Module Name:
6 
7     FxTypes.h
8 
9 Abstract:
10 
11     This defines the memory tags for the frameworks objects
12 
13 Author:
14 
15 
16 
17 
18 Revision History:
19 
20 
21 --*/
22 
23 #ifndef _FXTYPES_H
24 #define _FXTYPES_H
25 
26 //
27 // Might be expanded to a ULONG if we need the storage
28 //
29 typedef USHORT WDFTYPE;
30 
31 
32 enum FX_OBJECT_TYPES_BASE {
33 
34     FX_TYPES_BASE             = 0x1000,
35     FX_TYPES_PACKAGES_BASE    = 0x1100,
36     FX_TYPES_IO_TARGET_BASE   = 0x1200,
37     FX_ABSTRACT_TYPES_BASE    = 0x1300,
38     FX_TYPES_DMA_BASE         = 0x1400,
39     FX_TYPES_INTERFACES_BASE  = 0x1500,
40 };
41 
42 enum FX_OBJECT_TYPES {
43     // Use Hex numbers since this the kd default dump value
44 
45     FX_TYPE_OBJECT               = FX_TYPES_BASE+0x0,
46     FX_TYPE_DRIVER               = FX_TYPES_BASE+0x1,
47     FX_TYPE_DEVICE               = FX_TYPES_BASE+0x2,
48     FX_TYPE_QUEUE                = FX_TYPES_BASE+0x3,
49     FX_TYPE_WMI_PROVIDER         = FX_TYPES_BASE+0x4,
50     // can be reused             = FX_TYPES_BASE+0x5,
51     FX_TYPE_REG_KEY              = FX_TYPES_BASE+0x6,
52     FX_TYPE_STRING               = FX_TYPES_BASE+0x7,
53     FX_TYPE_REQUEST              = FX_TYPES_BASE+0x8,
54     FX_TYPE_LOOKASIDE            = FX_TYPES_BASE+0x9,
55     IFX_TYPE_MEMORY              = FX_TYPES_BASE+0xA,
56     FX_TYPE_IRPQUEUE             = FX_TYPES_BASE+0xB,
57     FX_TYPE_USEROBJECT           = FX_TYPES_BASE+0xC,
58     // can be reused               FX_TYPES_BASE+0xD,
59     FX_TYPE_COLLECTION           = FX_TYPES_BASE+0xE,
60 
61 
62 
63 
64     // can be reused             = FX_TYPES_BASE+0x11,
65     FX_TYPE_VERIFIERLOCK         = FX_TYPES_BASE+0x12,
66     FX_TYPE_SYSTEMTHREAD         = FX_TYPES_BASE+0x13,
67     FX_TYPE_MP_DEVICE            = FX_TYPES_BASE+0x14,
68     FX_TYPE_DPC                  = FX_TYPES_BASE+0x15,
69     FX_TYPE_RESOURCE_IO          = FX_TYPES_BASE+0x16,
70     FX_TYPE_RESOURCE_CM          = FX_TYPES_BASE+0x17,
71     FX_TYPE_FILEOBJECT           = FX_TYPES_BASE+0x18,
72     // can be reused             = FX_TYPES_BASE+0x19,
73     // can be reused             = FX_TYPES_BASE+0x20,
74     FX_TYPE_RELATED_DEVICE       = FX_TYPES_BASE+0x21,
75     FX_TYPE_MEMORY_PREALLOCATED  = FX_TYPES_BASE+0x22,
76     FX_TYPE_WAIT_LOCK            = FX_TYPES_BASE+0x23,
77     FX_TYPE_SPIN_LOCK            = FX_TYPES_BASE+0x24,
78     FX_TYPE_WORKITEM             = FX_TYPES_BASE+0x25,
79     FX_TYPE_CLEANUPLIST          = FX_TYPES_BASE+0x26,
80     FX_TYPE_INTERRUPT            = FX_TYPES_BASE+0x27,
81     FX_TYPE_TIMER                = FX_TYPES_BASE+0x28,
82     FX_TYPE_CHILD_LIST           = FX_TYPES_BASE+0x29,
83     FX_TYPE_DEVICE_BASE          = FX_TYPES_BASE+0x30,
84     FX_TYPE_SYSTEMWORKITEM       = FX_TYPES_BASE+0x31,
85     FX_TYPE_REQUEST_MEMORY       = FX_TYPES_BASE+0x32,
86     FX_TYPE_DISPOSELIST          = FX_TYPES_BASE+0x33,
87     FX_TYPE_WMI_INSTANCE         = FX_TYPES_BASE+0x34,
88     FX_TYPE_IO_RES_LIST          = FX_TYPES_BASE+0x35,
89     FX_TYPE_CM_RES_LIST          = FX_TYPES_BASE+0x36,
90     FX_TYPE_IO_RES_REQ_LIST      = FX_TYPES_BASE+0x37,
91 
92     FX_TYPE_PACKAGE_IO           = FX_TYPES_PACKAGES_BASE+0x0,
93     FX_TYPE_PACKAGE_FDO          = FX_TYPES_PACKAGES_BASE+0x1,
94     FX_TYPE_PACKAGE_PDO          = FX_TYPES_PACKAGES_BASE+0x2,
95     FX_TYPE_WMI_IRP_HANDLER      = FX_TYPES_PACKAGES_BASE+0x3,
96     FX_TYPE_PACKAGE_GENERAL      = FX_TYPES_PACKAGES_BASE+0x4,
97     FX_TYPE_DEFAULT_IRP_HANDLER  = FX_TYPES_PACKAGES_BASE+0x5,
98     FX_TYPE_WMI_TRACING_IRP_HANDLER = FX_TYPES_PACKAGES_BASE+0x6,
99 
100     FX_TYPE_IO_TARGET            = FX_TYPES_IO_TARGET_BASE+0x0,
101     FX_TYPE_IO_TARGET_REMOTE     = FX_TYPES_IO_TARGET_BASE+0x1,
102     FX_TYPE_IO_TARGET_USB_DEVICE = FX_TYPES_IO_TARGET_BASE+0x2,
103     FX_TYPE_IO_TARGET_USB_PIPE   = FX_TYPES_IO_TARGET_BASE+0x3,
104     FX_TYPE_USB_INTERFACE        = FX_TYPES_IO_TARGET_BASE+0x4,
105     FX_TYPE_IO_TARGET_SELF       = FX_TYPES_IO_TARGET_BASE+0x5,
106 
107     FX_TYPE_DMA_ENABLER          = FX_TYPES_DMA_BASE+0x0,
108     FX_TYPE_DMA_TRANSACTION      = FX_TYPES_DMA_BASE+0x1,
109     FX_TYPE_COMMON_BUFFER        = FX_TYPES_DMA_BASE+0x2,
110 
111     // Interfaces
112     FX_TYPE_IASSOCIATE           = FX_TYPES_INTERFACES_BASE+0x01,
113     // unused
114     FX_TYPE_IHASCALLBACKS        = FX_TYPES_INTERFACES_BASE+0x03,
115     // unused                    = FX_TYPES_INTERFACES_BASE+0x04,
116 
117     FX_TYPE_NONE                 = 0xFFFF,
118 };
119 
120 // begin_wpp config
121 // CUSTOM_TYPE(FX_OBJECT_TYPES, ItemEnum(FX_OBJECT_TYPES));
122 // end_wpp
123 
124 #endif // _FXTYPES_H
125