Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

udfs_rec.h

Go to the documentation of this file.
00001 /*++ 00002 00003 Copyright (c) 1992 Microsoft Corporation 00004 00005 Module Name: 00006 00007 udfs_rec.h 00008 00009 Abstract: 00010 00011 This module contains the mini-file system recognizer for UDFS. 00012 00013 Author: 00014 00015 Dan Lovinger (danlo) 13-Feb-1997 00016 00017 Environment: 00018 00019 Kernel mode, local to I/O system 00020 00021 Revision History: 00022 00023 00024 --*/ 00025 00026 // 00027 // NOTE CAREFULLY: the canonical location for this information is in the UDFS 00028 // driver source. 00029 // 00030 00031 // 00032 // Aligning this byte offset to a sector boundary by rounding up will 00033 // yield the starting offset of the Volume Recognition Area (2/8.3) 00034 // 00035 00036 #define VRA_BOUNDARY_LOCATION (32767 + 1) 00037 00038 /*** ISO 13346 Part 2: Volume and Boot Block Recognition 00039 * 00040 * 00041 */ 00042 00043 00044 /*** vsd_generic - Generic Volume Structure Descriptor (2/9.1) 00045 * 00046 */ 00047 00048 typedef struct VSD_GENERIC { 00049 UCHAR Type; // Structure Type 00050 UCHAR Ident[5]; // Standard Identifier 00051 UCHAR Version; // Standard Version 00052 UCHAR Data[2041]; // Structure Data 00053 } VSD_GENERIC, *PVSD_GENERIC; 00054 00055 // VSD_LENGTH_... - vsd field lengths 00056 00057 #define VSD_LENGTH_IDENT 5 // Length of regid_Identifier (bytes) 00058 00059 // VSD_IDENT_... - Values for vsd_generic_Ident 00060 00061 #define VSD_IDENT_BEA01 "BEA01" // Begin Extended Area 00062 #define VSD_IDENT_TEA01 "TEA01" // Terminate Extended Area 00063 #define VSD_IDENT_CDROM "CDROM" // High Sierra Group (pre-ISO 9660) 00064 #define VSD_IDENT_CD001 "CD001" // ISO 9660 00065 #define VSD_IDENT_CDW01 "CDW01" // ECMA 168 00066 #define VSD_IDENT_CDW02 "CDW02" // ISO 13490 00067 #define VSD_IDENT_NSR01 "NSR01" // ECMA 167 00068 #define VSD_IDENT_NSR02 "NSR02" // ISO 13346 00069 #define VSD_IDENT_BOOT2 "BOOT2" // Boot Descriptor 00070 00071 typedef enum _VSD_IDENT { 00072 VsdIdentBad = 0, 00073 VsdIdentBEA01, 00074 VsdIdentTEA01, 00075 VsdIdentCDROM, 00076 VsdIdentCD001, 00077 VsdIdentCDW01, 00078 VsdIdentCDW02, 00079 VsdIdentNSR01, 00080 VsdIdentNSR02, 00081 VsdIdentBOOT2 00082 } VSD_IDENT, *PVSD_IDENT; 00083 00084 // 00085 // Following structure is used to build up static data for parse tables 00086 // 00087 00088 typedef struct _PARSE_KEYVALUE { 00089 PCHAR Key; 00090 ULONG Value; 00091 } PARSE_KEYVALUE, *PPARSE_KEYVALUE; 00092 00093 // 00094 // Define the functions provided by this driver. 00095 // 00096 00097 BOOLEAN 00098 IsUdfsVolume ( 00099 IN PDEVICE_OBJECT DeviceObject, 00100 IN ULONG SectorSize 00101 ); 00102 00103 ULONG 00104 UdfsFindInParseTable ( 00105 IN PPARSE_KEYVALUE ParseTable, 00106 IN PCHAR Id, 00107 IN ULONG MaxIdLen 00108 ); 00109 00110 #define SectorAlignN(SECTORSIZE, L) ( \ 00111 ((((ULONG)(L)) + ((SECTORSIZE) - 1)) & ~((SECTORSIZE) - 1)) \ 00112 ) 00113

Generated on Sat May 15 19:42:10 2004 for test by doxygen 1.3.7