[SHELL32] Remove 2 redundant initializations
[reactos.git] / drivers / filesystems / mup / mup.h
index 12b7c45..ad1aaf5 100644 (file)
 #define _MUP_PCH_
 
 #include <wdm.h>
+#include <ntifs.h>
+#include <pseh/pseh2.h>
+#include <ndk/muptypes.h>
+#include <section_attribs.h>
 
 #define ROUND_UP(N, S) ((((N) + (S) - 1) / (S)) * (S))
+#define IO_METHOD_FROM_CTL_CODE(C) (C & 0x00000003)
 
-typedef struct
+#define TAG_MUP ' puM'
+
+#define FILE_SIMPLE_RIGHTS_MASK (FILE_ALL_ACCESS & ~STANDARD_RIGHTS_REQUIRED &~ SYNCHRONIZE)
+
+#define NODE_TYPE_VCB 0x1
+#define NODE_TYPE_UNC 0x2
+#define NODE_TYPE_PFX 0x3
+#define NODE_TYPE_FCB 0x4
+#define NODE_TYPE_CCB 0x5
+#define NODE_TYPE_MIC 0x6
+#define NODE_TYPE_MQC 0x8
+
+#define NODE_STATUS_HEALTHY 0x1
+#define NODE_STATUS_CLEANUP 0x2
+
+typedef struct _MUP_VCB
+{
+    ULONG NodeType;
+    ULONG NodeStatus;
+    LONG NodeReferences;
+    ULONG NodeSize;
+    SHARE_ACCESS ShareAccess;
+} MUP_VCB, *PMUP_VCB;
+
+typedef struct _MUP_FCB
+{
+    ULONG NodeType;
+    ULONG NodeStatus;
+    LONG NodeReferences;
+    ULONG NodeSize;
+    PFILE_OBJECT FileObject;
+    LIST_ENTRY CcbList;
+} MUP_FCB, *PMUP_FCB;
+
+typedef struct _MUP_CCB
+{
+    ULONG NodeType;
+    ULONG NodeStatus;
+    LONG NodeReferences;
+    ULONG NodeSize;
+    PMUP_FCB Fcb;
+    LIST_ENTRY CcbListEntry;
+    PDEVICE_OBJECT DeviceObject;
+    PFILE_OBJECT FileObject;
+} MUP_CCB, *PMUP_CCB;
+
+typedef struct _MUP_MIC
 {
-  ULONG Dummy;
+    ULONG NodeType;
+    ULONG NodeStatus;
+    LONG NodeReferences;
+    ULONG NodeSize;
+    PIRP Irp;
+    NTSTATUS LastSuccess;
+    NTSTATUS LastFailed;
+    PMUP_FCB Fcb;
+} MUP_MIC, *PMUP_MIC;
 
-} DEVICE_EXTENSION, *PDEVICE_EXTENSION, VCB, *PVCB;
+typedef struct _MUP_UNC
+{
+    ULONG NodeType;
+    ULONG NodeStatus;
+    LONG NodeReferences;
+    ULONG NodeSize;
+    LIST_ENTRY ProviderListEntry;
+    UNICODE_STRING DeviceName;
+    HANDLE DeviceHandle;
+    PDEVICE_OBJECT DeviceObject;
+    PFILE_OBJECT FileObject;
+    ULONG ProviderOrder;
+    BOOLEAN MailslotsSupported;
+    BOOLEAN Registered;
+} MUP_UNC, *PMUP_UNC;
 
-/* create.c */
-DRIVER_DISPATCH MupCreate;
-NTSTATUS NTAPI
-MupCreate(PDEVICE_OBJECT DeviceObject,
-         PIRP Irp);
+typedef struct _MUP_PFX
+{
+    ULONG NodeType;
+    ULONG NodeStatus;
+    LONG NodeReferences;
+    ULONG NodeSize;
+    UNICODE_PREFIX_TABLE_ENTRY PrefixTableEntry;
+    UNICODE_STRING AcceptedPrefix;
+    ULONG Reserved;
+    LARGE_INTEGER ValidityTimeout;
+    PMUP_UNC UncProvider;
+    BOOLEAN ExternalAlloc;
+    BOOLEAN InTable;
+    BOOLEAN KeepExtraRef;
+    BOOLEAN Padding;
+    LIST_ENTRY PrefixListEntry;
+} MUP_PFX, *PMUP_PFX;
+
+typedef struct _MUP_MQC
+{
+    ULONG NodeType;
+    ULONG NodeStatus;
+    LONG NodeReferences;
+    ULONG NodeSize;
+    PIRP Irp;
+    PFILE_OBJECT FileObject;
+    PMUP_UNC LatestProvider;
+    ERESOURCE QueryPathListLock;
+    PMUP_PFX Prefix;
+    NTSTATUS LatestStatus;
+    LIST_ENTRY QueryPathList;
+    LIST_ENTRY MQCListEntry;
+} MUP_MQC, *PMUP_MQC;
+
+typedef struct _FORWARDED_IO_CONTEXT
+{
+    PMUP_CCB Ccb;
+    PMUP_MIC MasterIoContext;
+    WORK_QUEUE_ITEM WorkQueueItem;
+    PDEVICE_OBJECT DeviceObject;
+    PIRP Irp;
+} FORWARDED_IO_CONTEXT, *PFORWARDED_IO_CONTEXT;
+
+typedef struct _QUERY_PATH_CONTEXT
+{
+    PMUP_MQC MasterQueryContext;
+    PMUP_UNC UncProvider;
+    PQUERY_PATH_REQUEST QueryPathRequest;
+    LIST_ENTRY QueryPathListEntry;
+    PIRP Irp;
+} QUERY_PATH_CONTEXT, *PQUERY_PATH_CONTEXT;
 
-/* mup.c */
-NTSTATUS NTAPI
-DriverEntry(PDRIVER_OBJECT DriverObject,
-           PUNICODE_STRING RegistryPath);
+#include "dfs.h"
 
 #endif /* _MUP_PCH_ */