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/ob.h>
18 #include <internal/debug.h>
20 /* GLOBALS *******************************************************************/
22 OBJECT_TYPE DeviceObjectType
= {{0,0,NULL
},
27 sizeof(DEVICE_OBJECT
),
39 OBJECT_TYPE FileObjectType
= {{0,0,NULL
},
57 /* FUNCTIONS ****************************************************************/
61 OBJECT_ATTRIBUTES attr
;
63 UNICODE_STRING string
;
67 * Register iomgr types
69 RtlInitAnsiString(&astring
,"Device");
70 RtlAnsiStringToUnicodeString(&DeviceObjectType
.TypeName
,&astring
,TRUE
);
71 ObRegisterType(OBJTYP_DEVICE
,&DeviceObjectType
);
73 RtlInitAnsiString(&astring
,"File");
74 RtlAnsiStringToUnicodeString(&FileObjectType
.TypeName
,&astring
,TRUE
);
75 ObRegisterType(OBJTYP_FILE
,&FileObjectType
);
78 * Create the device directory
80 RtlInitAnsiString(&astring
,"\\Device");
81 RtlAnsiStringToUnicodeString(&string
,&astring
,TRUE
);
82 InitializeObjectAttributes(&attr
,&string
,0,NULL
,NULL
);
83 ZwCreateDirectoryObject(&handle
,0,&attr
);
85 RtlInitAnsiString(&astring
,"\\??");
86 RtlAnsiStringToUnicodeString(&string
,&astring
,TRUE
);
87 InitializeObjectAttributes(&attr
,&string
,0,NULL
,NULL
);
88 ZwCreateDirectoryObject(&handle
,0,&attr
);
90 IoInitCancelHandling();
91 IoInitSymbolicLinkImplementation();
92 IoInitFileSystemImplementation();