Add NDK 1.00-pre. Needs some TLC in umtypes.h and a lot of fixes. Not used anywhere...
[reactos.git] / reactos / include / ndk / iotypes.h
1 /*
2 * PROJECT: ReactOS Native Headers
3 * FILE: include/ndk/iotypes.h
4 * PURPOSE: Definitions for exported I/O Manager Types not defined in DDK/IFS
5 * PROGRAMMER: Alex Ionescu (alex@relsoft.net)
6 * UPDATE HISTORY:
7 * Created 06/10/04
8 */
9
10 #ifndef _IOTYPES_H
11 #define _IOTYPES_H
12
13 /* DEPENDENCIES **************************************************************/
14
15 /* EXPORTED DATA *************************************************************/
16 extern POBJECT_TYPE NTOSAPI IoAdapterObjectType;
17 extern POBJECT_TYPE NTOSAPI IoDeviceHandlerObjectType;
18 extern POBJECT_TYPE NTOSAPI IoDeviceObjectType;
19 extern POBJECT_TYPE NTOSAPI IoDriverObjectType;
20 extern POBJECT_TYPE NTOSAPI IoFileObjectType;
21 extern ULONG NTOSAPI IoReadOperationCount;
22 extern ULONGLONG NTOSAPI IoReadTransferCount;
23 extern ULONG NTOSAPI IoWriteOperationCount;
24 extern ULONGLONG NTOSAPI IoWriteTransferCount;
25 extern KSPIN_LOCK NTOSAPI IoStatisticsLock;
26
27 /* CONSTANTS *****************************************************************/
28
29 /* I/O Types */
30 #define IO_TYPE_DRIVER 4L
31 #define IO_TYPE_TIMER 9L
32
33 /* ENUMERATIONS **************************************************************/
34
35 /* TYPES *********************************************************************/
36
37 typedef struct _MAILSLOT_CREATE_PARAMETERS
38 {
39 ULONG MailslotQuota;
40 ULONG MaximumMessageSize;
41 LARGE_INTEGER ReadTimeout;
42 BOOLEAN TimeoutSpecified;
43 } MAILSLOT_CREATE_PARAMETERS, *PMAILSLOT_CREATE_PARAMETERS;
44
45 typedef struct _NAMED_PIPE_CREATE_PARAMETERS
46 {
47 ULONG NamedPipeType;
48 ULONG ReadMode;
49 ULONG CompletionMode;
50 ULONG MaximumInstances;
51 ULONG InboundQuota;
52 ULONG OutboundQuota;
53 LARGE_INTEGER DefaultTimeout;
54 BOOLEAN TimeoutSpecified;
55 } NAMED_PIPE_CREATE_PARAMETERS, *PNAMED_PIPE_CREATE_PARAMETERS;
56
57 typedef struct _IO_TIMER
58 {
59 USHORT Type;
60 USHORT TimerEnabled;
61 LIST_ENTRY IoTimerList;
62 PIO_TIMER_ROUTINE TimerRoutine;
63 PVOID Context;
64 PDEVICE_OBJECT DeviceObject;
65 } IO_TIMER, *PIO_TIMER;
66
67 #endif
68