ReactOS  r74223
cdfs.h
Go to the documentation of this file.
1 #ifndef CDFS_H
2 #define CDFS_H
3 
4 #include <ntifs.h>
5 #include <ntddcdrm.h>
6 #include <pseh/pseh2.h>
7 
8 #ifdef __GNUC__
9 #define INIT_SECTION __attribute__((section ("INIT")))
10 #else
11 #define INIT_SECTION /* Done via alloc_text for MSC */
12 #endif
13 
14 #define CDFS_BASIC_SECTOR 2048
15 #define CDFS_PRIMARY_DESCRIPTOR_LOCATION 16
16 #define BLOCKSIZE CDFS_BASIC_SECTOR
17 #define CDFS_MAX_NAME_LEN 256
18 
19 /* Volume descriptor types (VdType) */
20 #define BOOT_VOLUME_DESCRIPTOR_TYPE 0
21 #define PRIMARY_VOLUME_DESCRIPTOR_TYPE 1
22 #define SUPPLEMENTARY_VOLUME_DESCRIPTOR_TYPE 2
23 #define VOLUME_PARTITION_DESCRIPTOR_TYPE 3
24 #define VOLUME_DESCRIPTOR_SET_TERMINATOR 255
25 
26 #include <pshpack1.h>
27 struct _DIR_RECORD
28 {
29  UCHAR RecordLength; // 1
31  ULONG ExtentLocationL; // 3-6
32  ULONG ExtentLocationM; // 7-10
33  ULONG DataLengthL; // 11-14
34  ULONG DataLengthM; // 15-18
35  UCHAR Year; // 19
36  UCHAR Month; // 20
37  UCHAR Day; // 21
38  UCHAR Hour; // 22
39  UCHAR Minute; // 23
40  UCHAR Second; // 24
41  UCHAR TimeZone; // 25
42  UCHAR FileFlags; // 26
43  UCHAR FileUnitSize; // 27
45  ULONG VolumeSequenceNumber; // 29-32
46  UCHAR FileIdLength; // 33
47  UCHAR FileId[1]; // 34
48 };
49 #include <poppack.h>
50 
52 
53 /* DIR_RECORD.FileFlags */
54 #define FILE_FLAG_HIDDEN 0x01
55 #define FILE_FLAG_DIRECTORY 0x02
56 #define FILE_FLAG_SYSTEM 0x04
57 #define FILE_FLAG_READONLY 0x10
58 
59 
60 /* Volume Descriptor header*/
61 #include <pshpack1.h>
62 struct _VD_HEADER
63 {
64  UCHAR VdType; // 1
65  UCHAR StandardId[5]; // 2-6
66  UCHAR VdVersion; // 7
67 };
68 
69 typedef struct _VD_HEADER VD_HEADER, *PVD_HEADER;
70 
71 
72 
73 /* Primary Volume Descriptor */
74 struct _PVD
75 {
76  UCHAR VdType; // 1
77  UCHAR StandardId[5]; // 2-6
78  UCHAR VdVersion; // 7
79  UCHAR unused0; // 8
80  UCHAR SystemId[32]; // 9-40
81  UCHAR VolumeId[32]; // 41-72
82  UCHAR unused1[8]; // 73-80
83  ULONG VolumeSpaceSizeL; // 81-84
84  ULONG VolumeSpaceSizeM; // 85-88
85  UCHAR unused2[32]; // 89-120
86  ULONG VolumeSetSize; // 121-124
87  ULONG VolumeSequenceNumber; // 125-128
88  ULONG LogicalBlockSize; // 129-132
89  ULONG PathTableSizeL; // 133-136
90  ULONG PathTableSizeM; // 137-140
91  ULONG LPathTablePos; // 141-144
92  ULONG LOptPathTablePos; // 145-148
93  ULONG MPathTablePos; // 149-152
94  ULONG MOptPathTablePos; // 153-156
95  DIR_RECORD RootDirRecord; // 157-190
96  UCHAR VolumeSetIdentifier[128]; // 191-318
97  UCHAR PublisherIdentifier[128]; // 319-446
98 
99  /* more data ... */
100 
101 };
102 typedef struct _PVD PVD, *PPVD;
103 
104 
105 /* Supplementary Volume Descriptor */
106 struct _SVD
107 {
108  UCHAR VdType; // 1
109  UCHAR StandardId[5]; // 2-6
112  UCHAR SystemId[32]; // 9-40
113  UCHAR VolumeId[32]; // 41-72
114  UCHAR unused1[8]; // 73-80
117  UCHAR EscapeSequences[32]; // 89-120
118  ULONG VolumeSetSize; // 121-124
121  ULONG PathTableSizeL; // 133-136
122  ULONG PathTableSizeM; // 137-140
123  ULONG LPathTablePos; // 141-144
125  ULONG MPathTablePos; // 149-152
128  UCHAR VolumeSetIdentifier[128]; // 191-318
129  UCHAR PublisherIdentifier[128]; // 319-446
130 
131  // more data ...
132 };
133 #include <poppack.h>
134 
135 typedef struct _SVD SVD, *PSVD;
136 
137 
138 
139 
140 
141 
142 
143 typedef struct _CDINFO
144 {
153 } CDINFO, *PCDINFO;
154 
155 
156 typedef struct
157 {
160 
163 
168 
170 
171  /* Notifications */
175 
176 
177 #define FCB_CACHE_INITIALIZED 0x0001
178 #define FCB_IS_VOLUME_STREAM 0x0002
179 #define FCB_IS_VOLUME 0x0004
180 
181 #define MAX_PATH 260
182 
183 typedef struct _CDFS_SHORT_NAME
184 {
190 
191 typedef struct _FCB
192 {
197 
199  PDEVICE_EXTENSION DevExt;
200 
202 
203  WCHAR *ObjectName; /* point on filename (250 chars max) in PathName */
204  UNICODE_STRING PathName; /* path+filename 260 max */
205  WCHAR PathNameBuffer[MAX_PATH]; /* Buffer for PathName */
207 
209  struct _FCB* ParentFcb;
210 
212 
213  LARGE_INTEGER IndexNumber; /* HighPart: Parent directory start sector */
214  /* LowPart: Directory record offset in the parent directory file */
215 
218 
220 
224 } FCB, *PFCB;
225 
226 
227 typedef struct _CCB
228 {
232  /* for DirectoryControl */
235  /* for DirectoryControl */
239 } CCB, *PCCB;
240 
241 #define CDFS_TAG 'sfdC'
242 #define CDFS_CCB_TAG 'ccdC'
243 #define CDFS_NONPAGED_FCB_TAG 'nfdC'
244 #define CDFS_SHORT_NAME_TAG 'sgdC'
245 #define CDFS_SEARCH_PATTERN_TAG 'eedC'
246 #define CDFS_FILENAME_TAG 'nFdC'
247 
248 typedef struct _CDFS_GLOBAL_DATA
249 {
257 
258 #define IRPCONTEXT_CANWAIT 0x1
259 #define IRPCONTEXT_COMPLETE 0x2
260 #define IRPCONTEXT_QUEUE 0x4
261 
262 typedef struct _CDFS_IRP_CONTEXT
263 {
264 // NTFSIDENTIFIER Identifier;
277 
278 
279 extern PCDFS_GLOBAL_DATA CdfsGlobalData;
280 
281 /* cdfs.c */
282 
283 NTSTATUS
284 NTAPI
288 
289 /* cleanup.c */
290 
291 NTSTATUS
292 NTAPI
294  PCDFS_IRP_CONTEXT IrpContext);
295 
296 
297 /* close.c */
298 
299 NTSTATUS
300 NTAPI
301 CdfsClose(
302  PCDFS_IRP_CONTEXT IrpContext);
303 
304 NTSTATUS
305 CdfsCloseFile(PDEVICE_EXTENSION DeviceExt,
307 
308 
309 /* common.c */
310 
311 NTSTATUS
313  IN ULONG DiskSector,
316  IN BOOLEAN Override);
317 
318 NTSTATUS
320  IN ULONG CtlCode,
322  IN ULONG InputBufferSize,
324  IN OUT PULONG pOutputBufferSize,
325  IN BOOLEAN Override);
326 
327 /* create.c */
328 
329 NTSTATUS
330 NTAPI
331 CdfsCreate(
332  PCDFS_IRP_CONTEXT IrpContext);
333 
334 /* devctrl.c */
335 
338  PCDFS_IRP_CONTEXT IrpContext);
339 
340 /* dirctl.c */
341 
342 NTSTATUS
343 NTAPI
345  PCDFS_IRP_CONTEXT IrpContext);
346 
347 /* dispatch.c */
348 
349 DRIVER_DISPATCH CdfsFsdDispatch;
350 NTSTATUS
351 NTAPI
354  PIRP Irp);
355 
356 /* fastio.c */
357 
358 BOOLEAN
359 NTAPI
361  IN BOOLEAN Wait);
362 
363 VOID
364 NTAPI
366 
367 FAST_IO_CHECK_IF_POSSIBLE CdfsFastIoCheckIfPossible;
368 FAST_IO_READ CdfsFastIoRead;
369 FAST_IO_WRITE CdfsFastIoWrite;
370 
371 /* fcb.c */
372 
373 PFCB
375 
376 VOID
377 CdfsDestroyFCB(PFCB Fcb);
378 
379 BOOLEAN
380 CdfsFCBIsDirectory(PFCB Fcb);
381 
382 BOOLEAN
383 CdfsFCBIsRoot(PFCB Fcb);
384 
385 VOID
386 CdfsGrabFCB(PDEVICE_EXTENSION Vcb,
387  PFCB Fcb);
388 
389 VOID
390 CdfsReleaseFCB(PDEVICE_EXTENSION Vcb,
391  PFCB Fcb);
392 
393 VOID
394 CdfsAddFCBToTable(PDEVICE_EXTENSION Vcb,
395  PFCB Fcb);
396 
397 PFCB
398 CdfsGrabFCBFromTable(PDEVICE_EXTENSION Vcb,
400 
401 NTSTATUS
403  PFCB Fcb);
404 
405 PFCB
406 CdfsMakeRootFCB(PDEVICE_EXTENSION Vcb);
407 
408 PFCB
409 CdfsOpenRootFCB(PDEVICE_EXTENSION Vcb);
410 
411 NTSTATUS
413  PFCB DirectoryFCB,
414  PWSTR LongName,
416  PDIR_RECORD Record,
417  ULONG DirectorySector,
418  ULONG DirectoryOffset,
419  PFCB * fileFCB);
420 
421 NTSTATUS
422 CdfsAttachFCBToFileObject(PDEVICE_EXTENSION Vcb,
423  PFCB Fcb,
425 
426 NTSTATUS
427 CdfsDirFindFile(PDEVICE_EXTENSION DeviceExt,
428  PFCB DirectoryFcb,
429  PUNICODE_STRING FileToFind,
430  PFCB *FoundFCB);
431 
432 NTSTATUS
433 CdfsGetFCBForFile(PDEVICE_EXTENSION Vcb,
434  PFCB *pParentFCB,
435  PFCB *pFCB,
437 
438 
439 /* finfo.c */
440 
441 NTSTATUS
442 NTAPI
444  PCDFS_IRP_CONTEXT IrpContext);
445 
446 NTSTATUS
447 NTAPI
449  PCDFS_IRP_CONTEXT IrpContext);
450 
451 
452 /* fsctl.c */
453 
456  PCDFS_IRP_CONTEXT IrpContext);
457 
458 
459 /* misc.c */
460 
461 BOOLEAN
463  PIRP Irp);
464 
465 PCDFS_IRP_CONTEXT
468  PIRP Irp);
469 
470 VOID
472  PUCHAR In,
473  ULONG Count);
474 
475 VOID
476 CdfsDateTimeToSystemTime(PFCB Fcb,
477  PLARGE_INTEGER SystemTime);
478 
479 VOID
482 
483 VOID
485 (PFCB DirectoryFcb,
486  PLARGE_INTEGER StreamOffset,
489 
490 BOOLEAN
491 CdfsIsRecordValid(IN PDEVICE_EXTENSION DeviceExt,
492  IN PDIR_RECORD Record);
493 
494 VOID
495 CdfsGetDirEntryName(PDEVICE_EXTENSION DeviceExt,
496  PDIR_RECORD Record,
497  PWSTR Name);
498 
499 /* rw.c */
500 
501 NTSTATUS
502 NTAPI
503 CdfsRead(
504  PCDFS_IRP_CONTEXT IrpContext);
505 
506 NTSTATUS
507 NTAPI
508 CdfsWrite(
509  PCDFS_IRP_CONTEXT IrpContext);
510 
511 
512 /* volinfo.c */
513 
514 NTSTATUS
515 NTAPI
517  PCDFS_IRP_CONTEXT IrpContext);
518 
519 NTSTATUS
520 NTAPI
522  PCDFS_IRP_CONTEXT IrpContext);
523 
524 #endif /* CDFS_H */
DWORD *typedef PVOID
Definition: winlogon.h:52
FILE_LOCK FileLock
Definition: cdfs.h:223
ULONG PathTableSizeL
Definition: cdfs.h:121
VOID CdfsReleaseFCB(PDEVICE_EXTENSION Vcb, PFCB Fcb)
Definition: fcb.c:153
const uint16_t * PCWSTR
Definition: typedefs.h:56
#define IN
Definition: typedefs.h:39
UCHAR Day
Definition: iso.h:33
ULONG RootSize
Definition: cdfs.h:149
LIST_ENTRY ShortNameList
Definition: cdfs.h:222
BOOLEAN NTAPI CdfsAcquireForLazyWrite(IN PVOID Context, IN BOOLEAN Wait)
LIST_ENTRY FcbListEntry
Definition: cdfs.h:208
WORK_QUEUE_ITEM WorkQueueItem
Definition: cdfs.h:269
ULONG VolumeSpaceSizeM
Definition: iso.h:69
struct LOOKASIDE_ALIGN _NPAGED_LOOKASIDE_LIST NPAGED_LOOKASIDE_LIST
BOOLEAN CdfsIsRecordValid(IN PDEVICE_EXTENSION DeviceExt, IN PDIR_RECORD Record)
Definition: misc.c:210
CDINFO CdInfo
Definition: cdfs.h:169
NTSTATUS NTAPI CdfsCreate(PCDFS_IRP_CONTEXT IrpContext)
Definition: create.c:257
CHAR VolumeId[32]
Definition: iso.h:66
ULONG VolumeSpaceSizeM
Definition: cdfs.h:116
ULONG DataLengthM
Definition: iso.h:30
UCHAR FileId[1]
Definition: iso.h:43
BOOLEAN CdfsFCBIsDirectory(PFCB Fcb)
Definition: fcb.c:122
struct _FCB FCB
UCHAR StandardId[5]
Definition: iso.h:52
PFILE_OBJECT FileObject
Definition: cdfs.h:198
PDEVICE_OBJECT StorageDevice
Definition: cdfs.h:166
struct DEVICE_EXTENSION VCB
UCHAR VolumeSetIdentifier[128]
Definition: cdfs.h:128
ULONG LogicalBlockSize
Definition: iso.h:73
PFILE_OBJECT StreamFileObject
Definition: cdfs.h:167
ULONG RootStart
Definition: cdfs.h:148
_In_ PIRP Irp
Definition: csq.h:116
UCHAR MinorFunction
Definition: cdfs.h:268
Definition: cdfs.h:191
__wchar_t WCHAR
Definition: xmlstorage.h:180
struct _SVD * PSVD
Definition: cdfs.h:135
FAST_IO_WRITE CdfsFastIoWrite
Definition: cdfs.h:369
NTSTATUS NTAPI CdfsDirectoryControl(PCDFS_IRP_CONTEXT IrpContext)
Definition: dirctl.c:782
UNICODE_STRING Name
Definition: cdfs.h:187
ULONG SerialNumber
Definition: cdfs.h:152
Definition: cdfs.h:227
unsigned char * PUCHAR
Definition: retypes.h:3
UCHAR VdVersion
Definition: iso.h:53
struct _DIR_RECORD * PDIR_RECORD
Definition: cdfs.h:51
ULONG LastCluster
Definition: cdfs.h:237
PDEVICE_OBJECT DeviceObject
Definition: cdfs.h:251
BOOLEAN IsTopLevel
Definition: cdfs.h:271
UCHAR FileIdLength
Definition: iso.h:42
DIR_RECORD RootDirRecord
Definition: iso.h:80
PVOID *typedef PWSTR
Definition: winlogon.h:57
ULONG DirIndex
Definition: cdfs.h:211
WCHAR ShortNameBuffer[13]
Definition: cdfs.h:206
struct _CDFS_SHORT_NAME * PCDFS_SHORT_NAME
_Inout_ __drv_aliasesMem PSLIST_ENTRY _Inout_ PSLIST_ENTRY _In_ ULONG Count
Definition: exfuncs.h:1015
struct _FCB * PFCB
WCHAR NameBuffer[13]
Definition: cdfs.h:188
VOID CdfsGrabFCB(PDEVICE_EXTENSION Vcb, PFCB Fcb)
Definition: fcb.c:136
UCHAR FileFlags
Definition: iso.h:38
_In_ PLARGE_INTEGER _In_ ULONG _In_ BOOLEAN _In_ ULONG _Out_ PVOID _Out_ PIO_STATUS_BLOCK _In_ PDEVICE_OBJECT DeviceObject
Definition: npfs.h:636
ULONG JolietLevel
Definition: cdfs.h:147
uint16_t * PWCHAR
Definition: typedefs.h:55
ERESOURCE NameListResource
Definition: cdfs.h:221
NTSTATUS NTAPI CdfsSetInformation(PCDFS_IRP_CONTEXT IrpContext)
Definition: finfo.c:456
ULONG LOptPathTablePos
Definition: iso.h:77
ULONG LOptPathTablePos
Definition: cdfs.h:124
#define WCHAR
Definition: msvc.h:43
ULONG VolumeOffset
Definition: cdfs.h:145
ULONG ExtentLocationM
Definition: iso.h:28
ULONG PathTableSizeM
Definition: cdfs.h:122
LARGE_INTEGER CurrentByteOffset
Definition: cdfs.h:231
ULONG Entry
Definition: cdfs.h:233
ULONG VolumeSpaceSizeL
Definition: iso.h:68
CHAR InputBuffer[80]
Definition: conmgr.c:33
CCHAR PriorityBoost
Definition: cdfs.h:275
VOID CdfsShortNameCacheGet(PFCB DirectoryFcb, PLARGE_INTEGER StreamOffset, PUNICODE_STRING LongName, PUNICODE_STRING ShortName)
Definition: misc.c:254
PFCB CdfsMakeRootFCB(PDEVICE_EXTENSION Vcb)
Definition: fcb.c:282
UCHAR EscapeSequences[32]
Definition: cdfs.h:117
struct _CDFS_GLOBAL_DATA * PCDFS_GLOBAL_DATA
struct _CDINFO CDINFO
PCDFS_GLOBAL_DATA CdfsGlobalData
Definition: cdfs.c:41
static IN ULONG IN PWSTR OUT PCWSTR * ShortName
ERESOURCE VcbResource
Definition: cdfs.h:158
ULONG VolumeSpaceSizeL
Definition: cdfs.h:115
_In_ struct _KBUGCHECK_REASON_CALLBACK_RECORD * Record
Definition: ketypes.h:256
struct _CCB * PCCB
UCHAR MajorFunction
Definition: cdfs.h:267
Definition: cdfs.h:106
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
Definition: IoEaTest.cpp:117
UNICODE_STRING PathName
Definition: cdfs.h:204
struct _CDFS_GLOBAL_DATA CDFS_GLOBAL_DATA
ULONG MPathTablePos
Definition: cdfs.h:125
LIST_ENTRY NextCCB
Definition: cdfs.h:229
Definition: iso.h:59
CACHE_MANAGER_CALLBACKS CacheMgrCallbacks
Definition: cdfs.h:253
PFCB CdfsCreateFCB(PCWSTR FileName)
Definition: fcb.c:62
struct DEVICE_EXTENSION * PDEVICE_EXTENSION
NTSTATUS NTAPI CdfsDeviceControl(PCDFS_IRP_CONTEXT IrpContext)
Definition: devctrl.c:20
long LONG
Definition: pedump.c:60
ULONG LPathTablePos
Definition: iso.h:76
struct _VD_HEADER * PVD_HEADER
Definition: cdfs.h:69
WCHAR * ObjectName
Definition: cdfs.h:203
ULONG Flags
Definition: cdfs.h:252
LARGE_INTEGER IndexNumber
Definition: cdfs.h:213
ULONG LogicalBlockSize
Definition: cdfs.h:120
UCHAR VdVersion
Definition: iso.h:63
BOOLEAN CdfsFCBIsRoot(PFCB Fcb)
Definition: fcb.c:129
LONG RefCount
Definition: cdfs.h:216
ULONG PathTableSizeM
Definition: iso.h:75
_In_ PFILE_OBJECT FileObject
Definition: classpnp.h:1229
static PDRIVER_OBJECT DriverObject
Definition: template.c:42
UCHAR Month
Definition: iso.h:32
DIR_RECORD Entry
Definition: cdfs.h:219
NTSTATUS CdfsReadSectors(IN PDEVICE_OBJECT DeviceObject, IN ULONG DiskSector, IN ULONG SectorCount, IN OUT PUCHAR Buffer, IN BOOLEAN Override)
Definition: common.c:38
#define MAXIMUM_VOLUME_LABEL_LENGTH
Definition: iotypes.h:154
ULONG VolumeSequenceNumber
Definition: cdfs.h:119
Definition: bufpool.h:45
struct _PVD * PPVD
Definition: cdfs.h:102
_Must_inspect_result_ __drv_aliasesMem _In_ PDEVICE_OBJECT _In_opt_ PVOID _In_ ULONG _Out_opt_ PVOID OutputBuffer
Definition: iofuncs.h:713
NTSTATUS CdfsAttachFCBToFileObject(PDEVICE_EXTENSION Vcb, PFCB Fcb, PFILE_OBJECT FileObject)
Definition: fcb.c:395
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE _In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG FileAttributes
Definition: fltkernel.h:1230
ULONG Offset
Definition: cdfs.h:234
ULONG MOptPathTablePos
Definition: cdfs.h:126
KSPIN_LOCK FcbListLock
Definition: cdfs.h:161
BOOLEAN CdfsIsIrpTopLevel(PIRP Irp)
Definition: misc.c:44
FSRTL_COMMON_FCB_HEADER RFCB
Definition: cdfs.h:193
#define MAX_PATH
Definition: cdfs.h:181
Definition: iso.h:49
CHAR StandardId[5]
Definition: iso.h:62
WCHAR VolumeLabel[MAXIMUM_VOLUME_LABEL_LENGTH/sizeof(WCHAR)]
Definition: cdfs.h:150
PFILE_OBJECT PtrFileObject
Definition: cdfs.h:230
unsigned char BOOLEAN
ULONG MOptPathTablePos
Definition: iso.h:79
PDRIVER_OBJECT DriverObject
Definition: cdfs.h:250
ERESOURCE DirResource
Definition: cdfs.h:159
NTSTATUS CdfsMakeFCBFromDirEntry(PVCB Vcb, PFCB DirectoryFCB, PWSTR LongName, PWSTR ShortName, PDIR_RECORD Record, ULONG DirectorySector, ULONG DirectoryOffset, PFCB *fileFCB)
Definition: fcb.c:326
PDEVICE_EXTENSION DevExt
Definition: cdfs.h:199
NTSTATUS CdfsCloseFile(PDEVICE_EXTENSION DeviceExt, PFILE_OBJECT FileObject)
Definition: close.c:38
struct _CCB CCB
VOID CdfsFileFlagsToAttributes(PFCB Fcb, PULONG FileAttributes)
Definition: misc.c:157
UCHAR unused2[32]
Definition: iso.h:70
char CCHAR
Definition: typedefs.h:51
Definition: cdfs.h:143
struct _CDINFO * PCDINFO
VOID CdfsDestroyFCB(PFCB Fcb)
Definition: fcb.c:101
PVOID PNOTIFY_SYNC
Definition: fsrtltypes.h:284
UCHAR VolumeId[32]
Definition: cdfs.h:113
LARGE_INTEGER StreamOffset
Definition: cdfs.h:186
VOID CdfsGetDirEntryName(PDEVICE_EXTENSION DeviceExt, PDIR_RECORD Record, PWSTR Name)
Definition: misc.c:344
FAST_IO_DISPATCH FastIoDispatch
Definition: cdfs.h:254
* PFILE_OBJECT
Definition: iotypes.h:1949
UCHAR VdType
Definition: cdfs.h:108
ULONG Flags
Definition: cdfs.h:217
ULONG LPathTablePos
Definition: cdfs.h:123
NTSTATUS NTAPI CdfsRead(PCDFS_IRP_CONTEXT IrpContext)
Definition: rw.c:189
UNICODE_STRING ShortNameU
Definition: cdfs.h:201
NTSTATUS CdfsDirFindFile(PDEVICE_EXTENSION DeviceExt, PFCB DirectoryFcb, PUNICODE_STRING FileToFind, PFCB *FoundFCB)
Definition: fcb.c:444
unsigned char UCHAR
Definition: xmlstorage.h:181
ULONG PathTableSizeL
Definition: iso.h:74
UCHAR InterleaveGapSize
Definition: iso.h:40
PFCB CdfsOpenRootFCB(PDEVICE_EXTENSION Vcb)
Definition: fcb.c:307
VOID CdfsSwapString(PWCHAR Out, PUCHAR In, ULONG Count)
Definition: misc.c:110
UCHAR Minute
Definition: iso.h:35
ULONG MPathTablePos
Definition: iso.h:78
NTSTATUS NTAPI CdfsSetVolumeInformation(PCDFS_IRP_CONTEXT IrpContext)
Definition: volinfo.c:281
ULONG Flags
Definition: cdfs.h:265
Definition: typedefs.h:118
UCHAR RecordLength
Definition: iso.h:25
ULONG SectorCount
Definition: part_xbox.c:32
NTSTATUS NTAPI CdfsQueryInformation(PCDFS_IRP_CONTEXT IrpContext)
Definition: finfo.c:337
ERESOURCE MainResource
Definition: cdfs.h:195
ULONG VolumeSequenceNumber
Definition: iso.h:41
ULONG ExtentLocationL
Definition: iso.h:27
UCHAR StandardId[5]
Definition: cdfs.h:109
NTSTATUS NTAPI CdfsFileSystemControl(PCDFS_IRP_CONTEXT IrpContext)
Definition: fsctl.c:566
VOID NTAPI CdfsReleaseFromLazyWrite(IN PVOID Context)
ULONG VolumeSpaceSize
Definition: cdfs.h:146
UCHAR PublisherIdentifier[128]
Definition: cdfs.h:129
UCHAR SystemId[32]
Definition: cdfs.h:112
struct _CDFS_IRP_CONTEXT * PCDFS_IRP_CONTEXT
LONG NTSTATUS
Definition: DriverTester.h:11
NTSTATUS NTAPI CdfsQueryVolumeInformation(PCDFS_IRP_CONTEXT IrpContext)
Definition: volinfo.c:208
FAST_IO_READ CdfsFastIoRead
Definition: cdfs.h:368
PCDFS_IRP_CONTEXT CdfsAllocateIrpContext(PDEVICE_OBJECT DeviceObject, PIRP Irp)
Definition: misc.c:69
PDEVICE_OBJECT DeviceObject
Definition: cdfs.h:272
unsigned short USHORT
Definition: pedump.c:61
NTSTATUS NTAPI CdfsWrite(PCDFS_IRP_CONTEXT IrpContext)
Definition: rw.c:240
UCHAR Second
Definition: iso.h:36
UCHAR ExtAttrRecordLength
Definition: iso.h:26
UCHAR FileUnitSize
Definition: iso.h:39
CHAR VolumeSetIdentifier[128]
Definition: iso.h:81
_In_ ULONGLONG _In_ PUNICODE_STRING _In_ PUNICODE_STRING LongName
Definition: fsrtlfuncs.h:336
ULONG KSPIN_LOCK
Definition: env_spec_w32.h:72
PDEVICE_OBJECT VolumeDevice
Definition: cdfs.h:165
NTSTATUS SavedExceptionCode
Definition: cdfs.h:274
ULONG VolumeSequenceNumber
Definition: iso.h:72
unsigned int * PULONG
Definition: retypes.h:1
NPAGED_LOOKASIDE_LIST IrpContextLookasideList
Definition: cdfs.h:255
LIST_ENTRY NotifyList
Definition: cdfs.h:172
UCHAR VdType
Definition: iso.h:51
_In_ BOOLEAN Wait
Definition: cctypes.h:23
UCHAR VdVersion
Definition: cdfs.h:110
struct _BEEP_DEVICE_EXTENSION DEVICE_EXTENSION
#define Vcb
UCHAR unused1[8]
Definition: iso.h:67
UCHAR Hour
Definition: iso.h:34
NTSTATUS NTAPI DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath)
Definition: battc.c:16
NTSTATUS CdfsDeviceIoControl(IN PDEVICE_OBJECT DeviceObject, IN ULONG CtlCode, IN PVOID InputBuffer, IN ULONG InputBufferSize, IN OUT PVOID OutputBuffer, IN OUT PULONG pOutputBufferSize, IN BOOLEAN Override)
Definition: common.c:143
Definition: iotypes.h:166
#define OUT
Definition: typedefs.h:40
PIO_STACK_LOCATION Stack
Definition: cdfs.h:266
LIST_ENTRY FcbListHead
Definition: cdfs.h:162
PVOID PIRP
Definition: usb.h:38
LIST_ENTRY Entry
Definition: cdfs.h:185
FAST_IO_CHECK_IF_POSSIBLE CdfsFastIoCheckIfPossible
Definition: cdfs.h:367
ULONG ERESOURCE
Definition: env_spec_w32.h:594
unsigned int ULONG
Definition: retypes.h:1
WCHAR PathNameBuffer[MAX_PATH]
Definition: cdfs.h:205
ERESOURCE PagingIoResource
Definition: cdfs.h:196
VOID CdfsAddFCBToTable(PDEVICE_EXTENSION Vcb, PFCB Fcb)
Definition: fcb.c:175
DRIVER_DISPATCH CdfsFsdDispatch
Definition: cdfs.h:349
_In_ PUNICODE_STRING RegistryPath
Definition: wmip.h:27
struct _FCB * ParentFcb
Definition: cdfs.h:209
ULONG VolumeSetSize
Definition: iso.h:71
struct _CDFS_IRP_CONTEXT CDFS_IRP_CONTEXT
PFCB CdfsGrabFCBFromTable(PDEVICE_EXTENSION Vcb, PUNICODE_STRING FileName)
Definition: fcb.c:188
UCHAR unused1[8]
Definition: cdfs.h:114
UCHAR TimeZone
Definition: iso.h:37
VOID CdfsDateTimeToSystemTime(PFCB Fcb, PLARGE_INTEGER SystemTime)
Definition: misc.c:135
UNICODE_STRING DirectorySearchPattern
Definition: cdfs.h:236
USHORT VolumeLabelLength
Definition: cdfs.h:151
CHAR PublisherIdentifier[128]
Definition: iso.h:82
NTSTATUS NTAPI CdfsClose(PCDFS_IRP_CONTEXT IrpContext)
Definition: close.c:79
ULONG DataLengthL
Definition: iso.h:29
NTSTATUS CdfsGetFCBForFile(PDEVICE_EXTENSION Vcb, PFCB *pParentFCB, PFCB *pFCB, PUNICODE_STRING FileName)
Definition: fcb.c:598
UCHAR VdType
Definition: iso.h:61
ULONG LastOffset
Definition: cdfs.h:238
NTSTATUS CdfsFCBInitializeCache(PVCB Vcb, PFCB Fcb)
Definition: fcb.c:230
DIR_RECORD RootDirRecord
Definition: cdfs.h:127
struct DEVICE_EXTENSION * PVCB
PFILE_OBJECT FileObject
Definition: cdfs.h:273
PNOTIFY_SYNC NotifySync
Definition: cdfs.h:173
UCHAR Year
Definition: iso.h:31
UCHAR VolumeFlags
Definition: cdfs.h:111
SECTION_OBJECT_POINTERS SectionObjectPointers
Definition: cdfs.h:194
struct _CDFS_SHORT_NAME CDFS_SHORT_NAME
UCHAR unused0
Definition: iso.h:64
NTSTATUS NTAPI CdfsCleanup(PCDFS_IRP_CONTEXT IrpContext)
Definition: cleanup.c:82
ULONG VolumeSetSize
Definition: cdfs.h:118
CHAR SystemId[32]
Definition: iso.h:65