#include <ntifs.h>
#include <ntddcdrm.h>
+#include <pseh/pseh2.h>
#define CDFS_BASIC_SECTOR 2048
#define CDFS_PRIMARY_DESCRIPTOR_LOCATION 16
PFILE_OBJECT StreamFileObject;
CDINFO CdInfo;
+
+ /* Notifications */
+ LIST_ENTRY NotifyList;
+ PNOTIFY_SYNC NotifySync;
} DEVICE_EXTENSION, *PDEVICE_EXTENSION, VCB, *PVCB;
#define MAX_PATH 260
-typedef struct _CDFS_SHORT_NAME
+typedef struct _CDFS_SHORT_NAME
{
LIST_ENTRY Entry;
LARGE_INTEGER StreamOffset;
UNICODE_STRING ShortNameU;
- WCHAR *ObjectName; /* point on filename (250 chars max) in PathName */
- WCHAR PathName[MAX_PATH]; /* path+filename 260 max */
+ WCHAR *ObjectName; /* point on filename (250 chars max) in PathName */
+ UNICODE_STRING PathName; /* path+filename 260 max */
+ WCHAR PathNameBuffer[MAX_PATH]; /* Buffer for PathName */
WCHAR ShortNameBuffer[13];
LIST_ENTRY FcbListEntry;
ULONG DirIndex;
- LARGE_INTEGER IndexNumber; /* HighPart: Parent directory start sector */
- /* LowPart: Directory record offset in the parent directory file */
+ LARGE_INTEGER IndexNumber; /* HighPart: Parent directory start sector */
+ /* LowPart: Directory record offset in the parent directory file */
LONG RefCount;
ULONG Flags;
ULONG LastOffset;
} CCB, *PCCB;
-#define TAG_CCB 'BCCI'
-#define TAG_FCB 'BCFI'
+#define CDFS_TAG 'sfdC'
+#define CDFS_CCB_TAG 'ccdC'
+#define CDFS_NONPAGED_FCB_TAG 'nfdC'
+#define CDFS_SHORT_NAME_TAG 'sgdC'
+#define CDFS_SEARCH_PATTERN_TAG 'eedC'
+#define CDFS_FILENAME_TAG 'nFdC'
typedef struct
{
PDEVICE_OBJECT DeviceObject;
ULONG Flags;
CACHE_MANAGER_CALLBACKS CacheMgrCallbacks;
+ FAST_IO_DISPATCH FastIoDispatch;
} CDFS_GLOBAL_DATA, *PCDFS_GLOBAL_DATA;
extern PCDFS_GLOBAL_DATA CdfsGlobalData;
VOID
CdfsShortNameCacheGet
-(PFCB DirectoryFcb,
- PLARGE_INTEGER StreamOffset,
- PUNICODE_STRING LongName,
+(PFCB DirectoryFcb,
+ PLARGE_INTEGER StreamOffset,
+ PUNICODE_STRING LongName,
PUNICODE_STRING ShortName);
/* rw.c */
VOID NTAPI
CdfsReleaseFromLazyWrite(IN PVOID Context);
+FAST_IO_READ CdfsFastIoRead;
+FAST_IO_WRITE CdfsFastIoWrite;
+
#endif /* CDFS_H */