mirror of
https://github.com/reactos/reactos.git
synced 2024-08-26 21:28:48 +00:00
![Amine Khaldi](/assets/img/avatar_default.png)
* Create a branch for some evul shell experiments. svn path=/branches/shell-experiments/; revision=61927
93 lines
2.4 KiB
C
93 lines
2.4 KiB
C
/*
|
|
* COPYRIGHT: See COPYING in the top level directory
|
|
* PROJECT: ReactOS kernel
|
|
* FILE: drivers/filesystems/msfs/msfs.h
|
|
* PURPOSE: Mailslot filesystem
|
|
* PROGRAMMER: Eric Kohl
|
|
*/
|
|
|
|
#ifndef __DRIVERS_FS_MS_MSFS_H
|
|
#define __DRIVERS_FS_MS_MSFS_H
|
|
|
|
#include <ntifs.h>
|
|
|
|
#define DEFAULTAPI NTAPI
|
|
|
|
typedef struct _MSFS_DEVICE_EXTENSION
|
|
{
|
|
LIST_ENTRY FcbListHead;
|
|
KMUTEX FcbListLock;
|
|
} MSFS_DEVICE_EXTENSION, *PMSFS_DEVICE_EXTENSION;
|
|
|
|
|
|
typedef struct _MSFS_FCB
|
|
{
|
|
FSRTL_COMMON_FCB_HEADER RFCB;
|
|
UNICODE_STRING Name;
|
|
LIST_ENTRY FcbListEntry;
|
|
KSPIN_LOCK CcbListLock;
|
|
LIST_ENTRY CcbListHead;
|
|
struct _MSFS_CCB *ServerCcb;
|
|
ULONG ReferenceCount;
|
|
LARGE_INTEGER TimeOut;
|
|
KEVENT MessageEvent;
|
|
ULONG MaxMessageSize;
|
|
ULONG MessageCount;
|
|
KSPIN_LOCK MessageListLock;
|
|
LIST_ENTRY MessageListHead;
|
|
} MSFS_FCB, *PMSFS_FCB;
|
|
|
|
|
|
typedef struct _MSFS_CCB
|
|
{
|
|
LIST_ENTRY CcbListEntry;
|
|
PMSFS_FCB Fcb;
|
|
} MSFS_CCB, *PMSFS_CCB;
|
|
|
|
|
|
typedef struct _MSFS_MESSAGE
|
|
{
|
|
LIST_ENTRY MessageListEntry;
|
|
ULONG Size;
|
|
UCHAR Buffer[1];
|
|
} MSFS_MESSAGE, *PMSFS_MESSAGE;
|
|
|
|
|
|
#define KeLockMutex(x) KeWaitForSingleObject(x, \
|
|
UserRequest, \
|
|
KernelMode, \
|
|
FALSE, \
|
|
NULL);
|
|
|
|
#define KeUnlockMutex(x) KeReleaseMutex(x, FALSE);
|
|
|
|
DRIVER_DISPATCH MsfsCreate;
|
|
NTSTATUS DEFAULTAPI MsfsCreate(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
|
|
|
DRIVER_DISPATCH MsfsCreateMailslot;
|
|
NTSTATUS DEFAULTAPI MsfsCreateMailslot(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
|
|
|
DRIVER_DISPATCH MsfsClose;
|
|
NTSTATUS DEFAULTAPI MsfsClose(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
|
|
|
DRIVER_DISPATCH MsfsQueryInformation;
|
|
NTSTATUS DEFAULTAPI MsfsQueryInformation(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
|
|
|
DRIVER_DISPATCH MsfsSetInformation;
|
|
NTSTATUS DEFAULTAPI MsfsSetInformation(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
|
|
|
DRIVER_DISPATCH MsfsRead;
|
|
NTSTATUS DEFAULTAPI MsfsRead(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
|
|
|
DRIVER_DISPATCH MsfsWrite;
|
|
NTSTATUS DEFAULTAPI MsfsWrite(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
|
|
|
DRIVER_DISPATCH MsfsFileSystemControl;
|
|
NTSTATUS DEFAULTAPI MsfsFileSystemControl(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
|
|
|
NTSTATUS NTAPI
|
|
DriverEntry(PDRIVER_OBJECT DriverObject,
|
|
PUNICODE_STRING RegistryPath);
|
|
|
|
#endif /* __DRIVERS_FS_MS_MSFS_H */
|