ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

msfs.h
Go to the documentation of this file.
00001 /*
00002  * COPYRIGHT:  See COPYING in the top level directory
00003  * PROJECT:    ReactOS kernel
00004  * FILE:       drivers/filesystems/msfs/msfs.h
00005  * PURPOSE:    Mailslot filesystem
00006  * PROGRAMMER: Eric Kohl
00007  */
00008 
00009 #ifndef __DRIVERS_FS_MS_MSFS_H
00010 #define __DRIVERS_FS_MS_MSFS_H
00011 
00012 #include <ntifs.h>
00013 #include <iotypes.h>
00014 
00015 #define DEFAULTAPI NTAPI
00016 
00017 typedef struct _MSFS_DEVICE_EXTENSION
00018 {
00019     LIST_ENTRY FcbListHead;
00020     KMUTEX FcbListLock;
00021 } MSFS_DEVICE_EXTENSION, *PMSFS_DEVICE_EXTENSION;
00022 
00023 
00024 typedef struct _MSFS_FCB
00025 {
00026     FSRTL_COMMON_FCB_HEADER RFCB;
00027     UNICODE_STRING Name;
00028     LIST_ENTRY FcbListEntry;
00029     KSPIN_LOCK CcbListLock;
00030     LIST_ENTRY CcbListHead;
00031     struct _MSFS_CCB *ServerCcb;
00032     ULONG ReferenceCount;
00033     LARGE_INTEGER TimeOut;
00034     KEVENT MessageEvent;
00035     ULONG MaxMessageSize;
00036     ULONG MessageCount;
00037     KSPIN_LOCK MessageListLock;
00038     LIST_ENTRY MessageListHead;
00039 } MSFS_FCB, *PMSFS_FCB;
00040 
00041 
00042 typedef struct _MSFS_CCB
00043 {
00044     LIST_ENTRY CcbListEntry;
00045     PMSFS_FCB Fcb;
00046 } MSFS_CCB, *PMSFS_CCB;
00047 
00048 
00049 typedef struct _MSFS_MESSAGE
00050 {
00051     LIST_ENTRY MessageListEntry;
00052     ULONG Size;
00053     UCHAR Buffer[1];
00054 } MSFS_MESSAGE, *PMSFS_MESSAGE;
00055 
00056 
00057 #define KeLockMutex(x) KeWaitForSingleObject(x, \
00058                                              UserRequest, \
00059                                              KernelMode, \
00060                                              FALSE, \
00061                                              NULL);
00062 
00063 #define KeUnlockMutex(x) KeReleaseMutex(x, FALSE);
00064 
00065 DRIVER_DISPATCH MsfsCreate;
00066 NTSTATUS DEFAULTAPI MsfsCreate(PDEVICE_OBJECT DeviceObject, PIRP Irp);
00067 
00068 DRIVER_DISPATCH MsfsCreateMailslot;
00069 NTSTATUS DEFAULTAPI MsfsCreateMailslot(PDEVICE_OBJECT DeviceObject, PIRP Irp);
00070 
00071 DRIVER_DISPATCH MsfsClose;
00072 NTSTATUS DEFAULTAPI MsfsClose(PDEVICE_OBJECT DeviceObject, PIRP Irp);
00073 
00074 DRIVER_DISPATCH MsfsQueryInformation;
00075 NTSTATUS DEFAULTAPI MsfsQueryInformation(PDEVICE_OBJECT DeviceObject, PIRP Irp);
00076 
00077 DRIVER_DISPATCH MsfsSetInformation;
00078 NTSTATUS DEFAULTAPI MsfsSetInformation(PDEVICE_OBJECT DeviceObject, PIRP Irp);
00079 
00080 DRIVER_DISPATCH MsfsRead;
00081 NTSTATUS DEFAULTAPI MsfsRead(PDEVICE_OBJECT DeviceObject, PIRP Irp);
00082 
00083 DRIVER_DISPATCH MsfsWrite;
00084 NTSTATUS DEFAULTAPI MsfsWrite(PDEVICE_OBJECT DeviceObject, PIRP Irp);
00085 
00086 DRIVER_DISPATCH MsfsFileSystemControl;
00087 NTSTATUS DEFAULTAPI MsfsFileSystemControl(PDEVICE_OBJECT DeviceObject, PIRP Irp);
00088 
00089 NTSTATUS NTAPI
00090 DriverEntry(PDRIVER_OBJECT DriverObject,
00091             PUNICODE_STRING RegistryPath);
00092 
00093 #endif /* __DRIVERS_FS_MS_MSFS_H */

Generated on Thu May 24 2012 04:28:15 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.