4 #define doit(a,b) { printf("%s %04lx %4lx %s\n", #a, FIELD_OFFSET(a,b), sizeof(d.b), #b); }
12 printf("<Record> <offset> <size> <field>\n\n");
15 doit( CD_MCB
, MaximumEntryCount
);
16 doit( CD_MCB
, CurrentEntryCount
);
17 doit( CD_MCB
, McbArray
);
22 doit( CD_MCB_ENTRY
, DiskOffset
);
23 doit( CD_MCB_ENTRY
, ByteCount
);
24 doit( CD_MCB_ENTRY
, FileOffset
);
25 doit( CD_MCB_ENTRY
, DataBlockByteCount
);
26 doit( CD_MCB_ENTRY
, TotalBlockByteCount
);
31 doit( CD_NAME
, FileName
);
32 doit( CD_NAME
, VersionString
);
37 doit( NAME_LINK
, Links
);
38 doit( NAME_LINK
, FileName
);
43 doit( PREFIX_ENTRY
, Fcb
);
44 doit( PREFIX_ENTRY
, PrefixFlags
);
45 doit( PREFIX_ENTRY
, ExactCaseName
);
46 doit( PREFIX_ENTRY
, IgnoreCaseName
);
47 doit( PREFIX_ENTRY
, FileNameBuffer
);
52 doit( CD_DATA
, NodeTypeCode
);
53 doit( CD_DATA
, NodeByteSize
);
54 doit( CD_DATA
, DriverObject
);
55 doit( CD_DATA
, VcbQueue
);
56 doit( CD_DATA
, IrpContextDepth
);
57 doit( CD_DATA
, IrpContextMaxDepth
);
58 doit( CD_DATA
, IrpContextList
);
59 doit( CD_DATA
, FileSystemDeviceObject
);
60 doit( CD_DATA
, AsyncCloseQueue
);
61 doit( CD_DATA
, AsyncCloseCount
);
62 doit( CD_DATA
, FspCloseActive
);
63 doit( CD_DATA
, ReduceDelayedClose
);
64 doit( CD_DATA
, PadUshort
);
65 doit( CD_DATA
, DelayedCloseQueue
);
66 doit( CD_DATA
, DelayedCloseCount
);
67 doit( CD_DATA
, MinDelayedCloseCount
);
68 doit( CD_DATA
, MaxDelayedCloseCount
);
69 doit( CD_DATA
, CdDataLockThread
);
70 doit( CD_DATA
, CdDataMutex
);
71 doit( CD_DATA
, DataResource
);
72 doit( CD_DATA
, CacheManagerCallbacks
);
73 doit( CD_DATA
, CacheManagerVolumeCallbacks
);
74 doit( CD_DATA
, CloseItem
);
79 doit( VCB
, NodeTypeCode
);
80 doit( VCB
, NodeByteSize
);
82 doit( VCB
, TargetDeviceObject
);
83 doit( VCB
, VolumeLockFileObject
);
84 doit( VCB
, VcbLinks
);
85 doit( VCB
, VcbState
);
86 doit( VCB
, VcbCondition
);
87 doit( VCB
, VcbCleanup
);
88 doit( VCB
, VcbReference
);
89 doit( VCB
, VcbUserReference
);
90 doit( VCB
, VolumeDasdFcb
);
91 doit( VCB
, RootIndexFcb
);
92 doit( VCB
, PathTableFcb
);
93 doit( VCB
, BaseSector
);
94 doit( VCB
, VdSectorOffset
);
95 doit( VCB
, PrimaryVdSectorOffset
);
96 doit( VCB
, XASector
);
97 doit( VCB
, XADiskOffset
);
98 doit( VCB
, VcbResource
);
99 doit( VCB
, FileResource
);
100 doit( VCB
, VcbMutex
);
101 doit( VCB
, VcbLockThread
);
102 doit( VCB
, NotifySync
);
103 doit( VCB
, DirNotifyList
);
104 doit( VCB
, BlockSize
);
105 doit( VCB
, BlockToSectorShift
);
106 doit( VCB
, BlockToByteShift
);
107 doit( VCB
, BlocksPerSector
);
108 doit( VCB
, BlockMask
);
109 doit( VCB
, BlockInverseMask
);
110 doit( VCB
, FcbTable
);
111 doit( VCB
, CdromToc
);
112 doit( VCB
, TocLength
);
113 doit( VCB
, TrackCount
);
114 doit( VCB
, DiskFlags
);
115 doit( VCB
, BlockFactor
);
119 VOLUME_DEVICE_OBJECT d
;
120 doit( VOLUME_DEVICE_OBJECT
, DeviceObject
);
121 doit( VOLUME_DEVICE_OBJECT
, PostedRequestCount
);
122 doit( VOLUME_DEVICE_OBJECT
, OverflowQueueCount
);
123 doit( VOLUME_DEVICE_OBJECT
, OverflowQueue
);
124 doit( VOLUME_DEVICE_OBJECT
, OverflowQueueSpinLock
);
125 doit( VOLUME_DEVICE_OBJECT
, Vcb
);
130 doit( FCB_DATA
, FileLock
);
135 doit( FCB_INDEX
, FileObject
);
136 doit( FCB_INDEX
, StreamOffset
);
137 doit( FCB_INDEX
, FcbQueue
);
138 doit( FCB_INDEX
, Ordinal
);
139 doit( FCB_INDEX
, ChildPathTableOffset
);
140 doit( FCB_INDEX
, ChildOrdinal
);
141 doit( FCB_INDEX
, ExactCaseRoot
);
142 doit( FCB_INDEX
, IgnoreCaseRoot
);
147 doit( FCB_NONPAGED
, NodeTypeCode
);
148 doit( FCB_NONPAGED
, NodeByteSize
);
149 doit( FCB_NONPAGED
, SegmentObject
);
150 doit( FCB_NONPAGED
, FcbResource
);
151 doit( FCB_NONPAGED
, FcbMutex
);
158 doit( FCB
, ParentFcb
);
159 doit( FCB
, FcbLinks
);
161 doit( FCB
, FcbCleanup
);
162 doit( FCB
, FcbReference
);
163 doit( FCB
, FcbUserReference
);
164 doit( FCB
, FcbState
);
165 doit( FCB
, FileAttributes
);
166 doit( FCB
, XAAttributes
);
167 doit( FCB
, XAFileNumber
);
168 doit( FCB
, FcbLockThread
);
169 doit( FCB
, FcbLockCount
);
170 doit( FCB
, FcbNonpaged
);
171 doit( FCB
, ShareAccess
);
172 doit( FCB
, McbEntry
);
174 doit( FCB
, ShortNamePrefix
);
175 doit( FCB
, FileNamePrefix
);
176 doit( FCB
, CreationTime
);
177 doit( FCB
, FcbType
);
182 doit( CCB
, NodeTypeCode
);
183 doit( CCB
, NodeByteSize
);
186 doit( CCB
, CurrentDirentOffset
);
187 doit( CCB
, SearchExpression
);
192 doit( IRP_CONTEXT
, NodeTypeCode
);
193 doit( IRP_CONTEXT
, NodeByteSize
);
194 doit( IRP_CONTEXT
, Irp
);
195 doit( IRP_CONTEXT
, Vcb
);
196 doit( IRP_CONTEXT
, ExceptionStatus
);
197 doit( IRP_CONTEXT
, Flags
);
198 doit( IRP_CONTEXT
, RealDevice
);
199 doit( IRP_CONTEXT
, IoContext
);
200 doit( IRP_CONTEXT
, TeardownFcb
);
201 doit( IRP_CONTEXT
, TopLevel
);
202 doit( IRP_CONTEXT
, MajorFunction
);
203 doit( IRP_CONTEXT
, MinorFunction
);
204 doit( IRP_CONTEXT
, ThreadContext
);
205 doit( IRP_CONTEXT
, WorkQueueItem
);
210 doit( IRP_CONTEXT_LITE
, NodeTypeCode
);
211 doit( IRP_CONTEXT_LITE
, NodeByteSize
);
212 doit( IRP_CONTEXT_LITE
, Fcb
);
213 doit( IRP_CONTEXT_LITE
, DelayedCloseLinks
);
214 doit( IRP_CONTEXT_LITE
, UserReference
);
215 doit( IRP_CONTEXT_LITE
, RealDevice
);
220 doit( CD_IO_CONTEXT
, IrpCount
);
221 doit( CD_IO_CONTEXT
, MasterIrp
);
222 doit( CD_IO_CONTEXT
, Status
);
223 doit( CD_IO_CONTEXT
, AllocatedContext
);
224 doit( CD_IO_CONTEXT
, Resource
);
225 doit( CD_IO_CONTEXT
, ResourceThreadId
);
226 doit( CD_IO_CONTEXT
, SyncEvent
);
231 doit( THREAD_CONTEXT
, Cdfs
);
232 doit( THREAD_CONTEXT
, SavedTopLevelIrp
);
233 doit( THREAD_CONTEXT
, TopLevelIrpContext
);
238 doit( PATH_ENUM_CONTEXT
, Data
);
239 doit( PATH_ENUM_CONTEXT
, BaseOffset
);
240 doit( PATH_ENUM_CONTEXT
, DataLength
);
241 doit( PATH_ENUM_CONTEXT
, Bcb
);
242 doit( PATH_ENUM_CONTEXT
, DataOffset
);
243 doit( PATH_ENUM_CONTEXT
, AllocatedData
);
244 doit( PATH_ENUM_CONTEXT
, LastDataBlock
);
249 doit( PATH_ENTRY
, Ordinal
);
250 doit( PATH_ENTRY
, PathTableOffset
);
251 doit( PATH_ENTRY
, DiskOffset
);
252 doit( PATH_ENTRY
, PathEntryLength
);
253 doit( PATH_ENTRY
, ParentOrdinal
);
254 doit( PATH_ENTRY
, DirNameLen
);
255 doit( PATH_ENTRY
, DirName
);
256 doit( PATH_ENTRY
, Flags
);
257 doit( PATH_ENTRY
, CdDirName
);
258 doit( PATH_ENTRY
, CdCaseDirName
);
259 doit( PATH_ENTRY
, NameBuffer
);
263 COMPOUND_PATH_ENTRY d
;
264 doit( COMPOUND_PATH_ENTRY
, PathContext
);
265 doit( COMPOUND_PATH_ENTRY
, PathEntry
);
269 DIRENT_ENUM_CONTEXT d
;
270 doit( DIRENT_ENUM_CONTEXT
, Sector
);
271 doit( DIRENT_ENUM_CONTEXT
, BaseOffset
);
272 doit( DIRENT_ENUM_CONTEXT
, DataLength
);
273 doit( DIRENT_ENUM_CONTEXT
, Bcb
);
274 doit( DIRENT_ENUM_CONTEXT
, SectorOffset
);
275 doit( DIRENT_ENUM_CONTEXT
, NextDirentOffset
);
280 doit( DIRENT
, DirentOffset
);
281 doit( DIRENT
, DirentLength
);
282 doit( DIRENT
, StartingOffset
);
283 doit( DIRENT
, DataLength
);
284 doit( DIRENT
, CdTime
);
285 doit( DIRENT
, DirentFlags
);
286 doit( DIRENT
, Flags
);
287 doit( DIRENT
, FileUnitSize
);
288 doit( DIRENT
, InterleaveGapSize
);
289 doit( DIRENT
, SystemUseOffset
);
290 doit( DIRENT
, XAAttributes
);
291 doit( DIRENT
, XAFileNumber
);
292 doit( DIRENT
, FileNameLen
);
293 doit( DIRENT
, FileName
);
294 doit( DIRENT
, CdFileName
);
295 doit( DIRENT
, CdCaseFileName
);
296 doit( DIRENT
, ExtentType
);
297 doit( DIRENT
, NameBuffer
);
302 doit( COMPOUND_DIRENT
, DirContext
);
303 doit( COMPOUND_DIRENT
, Dirent
);
308 doit( FILE_ENUM_CONTEXT
, PriorDirent
);
309 doit( FILE_ENUM_CONTEXT
, InitialDirent
);
310 doit( FILE_ENUM_CONTEXT
, CurrentDirent
);
311 doit( FILE_ENUM_CONTEXT
, Flags
);
312 doit( FILE_ENUM_CONTEXT
, FileSize
);
313 doit( FILE_ENUM_CONTEXT
, ShortName
);
314 doit( FILE_ENUM_CONTEXT
, ShortNameBuffer
);
315 doit( FILE_ENUM_CONTEXT
, Dirents
);
320 doit( RIFF_HEADER
, ChunkId
);
321 doit( RIFF_HEADER
, ChunkSize
);
322 doit( RIFF_HEADER
, SignatureCDXA
);
323 doit( RIFF_HEADER
, SignatureFMT
);
324 doit( RIFF_HEADER
, XAChunkSize
);
325 doit( RIFF_HEADER
, OwnerId
);
326 doit( RIFF_HEADER
, Attributes
);
327 doit( RIFF_HEADER
, SignatureXA
);
328 doit( RIFF_HEADER
, FileNumber
);
329 doit( RIFF_HEADER
, Reserved
);
330 doit( RIFF_HEADER
, SignatureData
);
331 doit( RIFF_HEADER
, RawSectors
);
336 doit( AUDIO_PLAY_HEADER
, Chunk
);
337 doit( AUDIO_PLAY_HEADER
, ChunkSize
);
338 doit( AUDIO_PLAY_HEADER
, SignatureCDDA
);
339 doit( AUDIO_PLAY_HEADER
, SignatureFMT
);
340 doit( AUDIO_PLAY_HEADER
, FMTChunkSize
);
341 doit( AUDIO_PLAY_HEADER
, FormatTag
);
342 doit( AUDIO_PLAY_HEADER
, TrackNumber
);
343 doit( AUDIO_PLAY_HEADER
, DiskID
);
344 doit( AUDIO_PLAY_HEADER
, StartingSector
);
345 doit( AUDIO_PLAY_HEADER
, SectorCount
);
346 doit( AUDIO_PLAY_HEADER
, TrackAddress
);
347 doit( AUDIO_PLAY_HEADER
, TrackLength
);
352 doit( RAW_ISO_VD
, DescType
);
353 doit( RAW_ISO_VD
, StandardId
);
354 doit( RAW_ISO_VD
, Version
);
355 doit( RAW_ISO_VD
, VolumeFlags
);
356 doit( RAW_ISO_VD
, SystemId
);
357 doit( RAW_ISO_VD
, VolumeId
);
358 doit( RAW_ISO_VD
, Reserved
);
359 doit( RAW_ISO_VD
, VolSpaceI
);
360 doit( RAW_ISO_VD
, VolSpaceM
);
361 doit( RAW_ISO_VD
, CharSet
);
362 doit( RAW_ISO_VD
, VolSetSizeI
);
363 doit( RAW_ISO_VD
, VolSetSizeM
);
364 doit( RAW_ISO_VD
, VolSeqNumI
);
365 doit( RAW_ISO_VD
, VolSeqNumM
);
366 doit( RAW_ISO_VD
, LogicalBlkSzI
);
367 doit( RAW_ISO_VD
, LogicalBlkSzM
);
368 doit( RAW_ISO_VD
, PathTableSzI
);
369 doit( RAW_ISO_VD
, PathTableSzM
);
370 doit( RAW_ISO_VD
, PathTabLocI
);
371 doit( RAW_ISO_VD
, PathTabLocM
);
372 doit( RAW_ISO_VD
, RootDe
);
373 doit( RAW_ISO_VD
, VolSetId
);
374 doit( RAW_ISO_VD
, PublId
);
375 doit( RAW_ISO_VD
, PreparerId
);
376 doit( RAW_ISO_VD
, AppId
);
377 doit( RAW_ISO_VD
, Copyright
);
378 doit( RAW_ISO_VD
, Abstract
);
379 doit( RAW_ISO_VD
, Bibliograph
);
380 doit( RAW_ISO_VD
, CreateDate
);
381 doit( RAW_ISO_VD
, ModDate
);
382 doit( RAW_ISO_VD
, ExpireDate
);
383 doit( RAW_ISO_VD
, EffectDate
);
384 doit( RAW_ISO_VD
, FileStructVer
);
385 doit( RAW_ISO_VD
, Reserved3
);
386 doit( RAW_ISO_VD
, ResApp
);
387 doit( RAW_ISO_VD
, Reserved4
);
392 doit( RAW_HSG_VD
, BlkNumI
);
393 doit( RAW_HSG_VD
, BlkNumM
);
394 doit( RAW_HSG_VD
, DescType
);
395 doit( RAW_HSG_VD
, StandardId
);
396 doit( RAW_HSG_VD
, Version
);
397 doit( RAW_HSG_VD
, VolumeFlags
);
398 doit( RAW_HSG_VD
, SystemId
);
399 doit( RAW_HSG_VD
, VolumeId
);
400 doit( RAW_HSG_VD
, Reserved
);
401 doit( RAW_HSG_VD
, VolSpaceI
);
402 doit( RAW_HSG_VD
, VolSpaceM
);
403 doit( RAW_HSG_VD
, CharSet
);
404 doit( RAW_HSG_VD
, VolSetSizeI
);
405 doit( RAW_HSG_VD
, VolSetSizeM
);
406 doit( RAW_HSG_VD
, VolSeqNumI
);
407 doit( RAW_HSG_VD
, VolSeqNumM
);
408 doit( RAW_HSG_VD
, LogicalBlkSzI
);
409 doit( RAW_HSG_VD
, LogicalBlkSzM
);
410 doit( RAW_HSG_VD
, PathTableSzI
);
411 doit( RAW_HSG_VD
, PathTableSzM
);
412 doit( RAW_HSG_VD
, PathTabLocI
);
413 doit( RAW_HSG_VD
, PathTabLocM
);
414 doit( RAW_HSG_VD
, RootDe
);
415 doit( RAW_HSG_VD
, VolSetId
);
416 doit( RAW_HSG_VD
, PublId
);
417 doit( RAW_HSG_VD
, PreparerId
);
418 doit( RAW_HSG_VD
, AppId
);
419 doit( RAW_HSG_VD
, Copyright
);
420 doit( RAW_HSG_VD
, Abstract
);
421 doit( RAW_HSG_VD
, CreateDate
);
422 doit( RAW_HSG_VD
, ModDate
);
423 doit( RAW_HSG_VD
, ExpireDate
);
424 doit( RAW_HSG_VD
, EffectDate
);
425 doit( RAW_HSG_VD
, FileStructVer
);
426 doit( RAW_HSG_VD
, Reserved3
);
427 doit( RAW_HSG_VD
, ResApp
);
428 doit( RAW_HSG_VD
, Reserved4
);
433 doit( RAW_DIRENT
, DirLen
);
434 doit( RAW_DIRENT
, XarLen
);
435 doit( RAW_DIRENT
, FileLoc
);
436 doit( RAW_DIRENT
, FileLocMot
);
437 doit( RAW_DIRENT
, DataLen
);
438 doit( RAW_DIRENT
, DataLenMot
);
439 doit( RAW_DIRENT
, RecordTime
);
440 doit( RAW_DIRENT
, FlagsHSG
);
441 doit( RAW_DIRENT
, FlagsISO
);
442 doit( RAW_DIRENT
, IntLeaveSize
);
443 doit( RAW_DIRENT
, IntLeaveSkip
);
444 doit( RAW_DIRENT
, Vssn
);
445 doit( RAW_DIRENT
, VssnMot
);
446 doit( RAW_DIRENT
, FileIdLen
);
447 doit( RAW_DIRENT
, FileId
);
452 doit( RAW_PATH_ISO
, DirIdLen
);
453 doit( RAW_PATH_ISO
, XarLen
);
454 doit( RAW_PATH_ISO
, DirLoc
);
455 doit( RAW_PATH_ISO
, ParentNum
);
456 doit( RAW_PATH_ISO
, DirId
);
461 doit( RAW_PATH_HSG
, DirLoc
);
462 doit( RAW_PATH_HSG
, XarLen
);
463 doit( RAW_PATH_HSG
, DirIdLen
);
464 doit( RAW_PATH_HSG
, ParentNum
);
465 doit( RAW_PATH_HSG
, DirId
);
470 doit( SYSTEM_USE_XA
, OwnerId
);
471 doit( SYSTEM_USE_XA
, Attributes
);
472 doit( SYSTEM_USE_XA
, Signature
);
473 doit( SYSTEM_USE_XA
, FileNumber
);
474 doit( SYSTEM_USE_XA
, Reserved
);