3 * COPYRIGHT: See COPYING in the top level directory
4 * PROJECT: ReactOS kernel
5 * FILE: services/fs/ms/msfs.c
6 * PURPOSE: Mailslot filesystem
7 * PROGRAMMER: Eric Kohl <ekohl@rz-online.de>
10 /* INCLUDES ******************************************************************/
18 /* FUNCTIONS *****************************************************************/
21 DriverEntry(PDRIVER_OBJECT DriverObject
,
22 PUNICODE_STRING RegistryPath
)
24 PMSFS_DEVICE_EXTENSION DeviceExtension
;
25 PDEVICE_OBJECT DeviceObject
;
26 UNICODE_STRING DeviceName
;
29 DPRINT("Mailslot FSD 0.0.1\n");
31 DriverObject
->Flags
= 0;
32 DriverObject
->MajorFunction
[IRP_MJ_CREATE
] = MsfsCreate
;
33 DriverObject
->MajorFunction
[IRP_MJ_CREATE_MAILSLOT
] =
35 DriverObject
->MajorFunction
[IRP_MJ_CLOSE
] = MsfsClose
;
36 DriverObject
->MajorFunction
[IRP_MJ_READ
] = MsfsRead
;
37 DriverObject
->MajorFunction
[IRP_MJ_WRITE
] = MsfsWrite
;
38 DriverObject
->MajorFunction
[IRP_MJ_QUERY_INFORMATION
] =
40 DriverObject
->MajorFunction
[IRP_MJ_SET_INFORMATION
] =
42 // DriverObject->MajorFunction[IRP_MJ_DIRECTORY_CONTROL] =
43 // MsfsDirectoryControl;
44 // DriverObject->MajorFunction[IRP_MJ_FLUSH_BUFFERS] = MsfsFlushBuffers;
45 // DriverObject->MajorFunction[IRP_MJ_SHUTDOWN] = MsfsShutdown;
46 // DriverObject->MajorFunction[IRP_MJ_QUERY_SECURITY] =
48 // DriverObject->MajorFunction[IRP_MJ_SET_SECURITY] =
50 DriverObject
->MajorFunction
[IRP_MJ_FILE_SYSTEM_CONTROL
] =
51 MsfsFileSystemControl
;
53 DriverObject
->DriverUnload
= NULL
;
55 RtlInitUnicodeString(&DeviceName
,
56 L
"\\Device\\MailSlot");
57 Status
= IoCreateDevice(DriverObject
,
58 sizeof(MSFS_DEVICE_EXTENSION
),
64 if (!NT_SUCCESS(Status
))
69 /* initialize the device object */
70 DeviceObject
->Flags
= DO_DIRECT_IO
;
72 /* initialize device extension */
73 DeviceExtension
= DeviceObject
->DeviceExtension
;
74 InitializeListHead(&DeviceExtension
->MailslotListHead
);
75 KeInitializeMutex(&DeviceExtension
->MailslotListLock
,
78 return(STATUS_SUCCESS
);