9adc8352ac3cf608dadda667416d08f48d7a0a9e
[reactos.git] / reactos / include / ndk / extypes.h
1 /*
2 * PROJECT: ReactOS Native Headers
3 * FILE: include/ndk/extypes.h
4 * PURPOSE: Definitions for exported Executive Functions not defined in DDK/IFS
5 * PROGRAMMER: Alex Ionescu (alex@relsoft.net)
6 * UPDATE HISTORY:
7 * Created 06/10/04
8 */
9
10 #ifndef _EXTYPES_H
11 #define _EXTYPES_H
12
13 /* DEPENDENCIES **************************************************************/
14
15 /* EXPORTED DATA *************************************************************/
16 extern POBJECT_TYPE NTOSAPI ExIoCompletionType;
17 extern NTOSAPI POBJECT_TYPE ExMutantObjectType;
18 extern NTOSAPI POBJECT_TYPE ExTimerType;
19
20 /* CONSTANTS *****************************************************************/
21
22 /* ENUMERATIONS **************************************************************/
23
24 typedef enum _HARDERROR_RESPONSE_OPTION
25 {
26 OptionAbortRetryIgnore,
27 OptionOk,
28 OptionOkCancel,
29 OptionRetryCancel,
30 OptionYesNo,
31 OptionYesNoCancel,
32 OptionShutdownSystem
33 } HARDERROR_RESPONSE_OPTION, *PHARDERROR_RESPONSE_OPTION;
34
35 typedef enum _HARDERROR_RESPONSE
36 {
37 ResponseReturnToCaller,
38 ResponseNotHandled,
39 ResponseAbort,
40 ResponseCancel,
41 ResponseIgnore,
42 ResponseNo,
43 ResponseOk,
44 ResponseRetry,
45 ResponseYes
46 } HARDERROR_RESPONSE, *PHARDERROR_RESPONSE;
47
48 /* TYPES *********************************************************************/
49
50 typedef struct _EX_QUEUE_WORKER_INFO
51 {
52 UCHAR QueueDisabled:1;
53 UCHAR MakeThreadsAsNecessary:1;
54 UCHAR WaitMode:1;
55 ULONG WorkerCount:29;
56 } EX_QUEUE_WORKER_INFO, *PEX_QUEUE_WORKER_INFO;
57
58 typedef struct _EX_WORK_QUEUE
59 {
60 KQUEUE WorkerQueue;
61 ULONG DynamicThreadCount;
62 ULONG WorkItemsProcessed;
63 ULONG WorkItemsProcessedLastPass;
64 ULONG QueueDepthLastPass;
65 EX_QUEUE_WORKER_INFO Info;
66 } EX_WORK_QUEUE, *PEX_WORK_QUEUE;
67
68 typedef struct _HANDLE_TABLE_ENTRY_INFO
69 {
70 ULONG AuditMask;
71 } HANDLE_TABLE_ENTRY_INFO, *PHANDLE_TABLE_ENTRY_INFO;
72
73 typedef struct _HANDLE_TABLE_ENTRY
74 {
75 union
76 {
77 PVOID Object;
78 ULONG_PTR ObAttributes;
79 PHANDLE_TABLE_ENTRY_INFO InfoTable;
80 ULONG_PTR Value;
81 } u1;
82 union
83 {
84 ULONG GrantedAccess;
85 USHORT GrantedAccessIndex;
86 LONG NextFreeTableEntry;
87 } u2;
88 } HANDLE_TABLE_ENTRY, *PHANDLE_TABLE_ENTRY;
89
90 typedef struct _HANDLE_TABLE
91 {
92 ULONG Flags;
93 LONG HandleCount;
94 PHANDLE_TABLE_ENTRY **Table;
95 PEPROCESS QuotaProcess;
96 HANDLE UniqueProcessId;
97 LONG FirstFreeTableEntry;
98 LONG NextIndexNeedingPool;
99 ERESOURCE HandleTableLock;
100 LIST_ENTRY HandleTableList;
101 KEVENT HandleContentionEvent;
102 } HANDLE_TABLE;
103
104 #endif
105