2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS kernel
4 * FILE: ntoskrnl/io/iomgr.c
5 * PURPOSE: Initializes the io manager
6 * PROGRAMMER: David Welch (welch@mcmail.com)
11 /* INCLUDES ****************************************************************/
14 #include <ddk/ntddk.h>
15 #include <internal/kernel.h>
16 #include <internal/objmgr.h>
18 /* GLOBALS *******************************************************************/
20 OBJECT_TYPE DeviceObjectType
= {{0,0,NULL
},
25 sizeof(DEVICE_OBJECT
),
37 OBJECT_TYPE FileObjectType
= {{0,0,NULL
},
55 /* FUNCTIONS ****************************************************************/
59 OBJECT_ATTRIBUTES attr
;
61 UNICODE_STRING string
;
65 * Register iomgr types
67 RtlInitAnsiString(&astring
,"Device");
68 RtlAnsiStringToUnicodeString(&DeviceObjectType
.TypeName
,&astring
,TRUE
);
69 ObRegisterType(OBJTYP_DEVICE
,&DeviceObjectType
);
71 RtlInitAnsiString(&astring
,"File");
72 RtlAnsiStringToUnicodeString(&FileObjectType
.TypeName
,&astring
,TRUE
);
73 ObRegisterType(OBJTYP_FILE
,&FileObjectType
);
76 * Create the device directory
78 RtlInitAnsiString(&astring
,"\\Device");
79 RtlAnsiStringToUnicodeString(&string
,&astring
,TRUE
);
80 InitializeObjectAttributes(&attr
,&string
,0,NULL
,NULL
);
81 ZwCreateDirectoryObject(&handle
,0,&attr
);
83 IoInitCancelHandling();
84 IoInitSymbolicLinkImplementation();