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 ******************************************************************/
12 #include <ddk/ntddk.h>
19 /* FUNCTIONS *****************************************************************/
22 DriverEntry(PDRIVER_OBJECT DriverObject,
23 PUNICODE_STRING RegistryPath)
25 PMSFS_DEVICE_EXTENSION DeviceExtension;
26 PDEVICE_OBJECT DeviceObject;
27 UNICODE_STRING DeviceName;
30 DbgPrint("Mailslot FSD 0.0.1\n");
32 DriverObject->Flags = 0;
33 DriverObject->MajorFunction[IRP_MJ_CREATE] = MsfsCreate;
34 DriverObject->MajorFunction[IRP_MJ_CREATE_MAILSLOT] =
36 DriverObject->MajorFunction[IRP_MJ_CLOSE] = MsfsClose;
37 DriverObject->MajorFunction[IRP_MJ_READ] = MsfsRead;
38 DriverObject->MajorFunction[IRP_MJ_WRITE] = MsfsWrite;
39 DriverObject->MajorFunction[IRP_MJ_QUERY_INFORMATION] =
41 DriverObject->MajorFunction[IRP_MJ_SET_INFORMATION] =
43 // DriverObject->MajorFunction[IRP_MJ_DIRECTORY_CONTROL] =
44 // MsfsDirectoryControl;
45 // DriverObject->MajorFunction[IRP_MJ_FLUSH_BUFFERS] = MsfsFlushBuffers;
46 // DriverObject->MajorFunction[IRP_MJ_SHUTDOWN] = MsfsShutdown;
47 // DriverObject->MajorFunction[IRP_MJ_QUERY_SECURITY] =
49 // DriverObject->MajorFunction[IRP_MJ_SET_SECURITY] =
51 DriverObject->MajorFunction[IRP_MJ_FILE_SYSTEM_CONTROL] =
52 MsfsFileSystemControl;
54 DriverObject->DriverUnload = NULL;
56 RtlInitUnicodeString(&DeviceName,
57 L"\\Device\\MailSlot");
58 Status = IoCreateDevice(DriverObject,
59 sizeof(MSFS_DEVICE_EXTENSION),
65 if (!NT_SUCCESS(Status))
70 /* initialize device extension */
71 DeviceExtension = DeviceObject->DeviceExtension;
72 InitializeListHead(&DeviceExtension->MailslotListHead);
73 KeInitializeMutex(&DeviceExtension->MailslotListLock,
76 return(STATUS_SUCCESS);