00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #define VRA_BOUNDARY_LOCATION (32767 + 1)
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048 typedef struct VSD_GENERIC {
00049 UCHAR
Type;
00050 UCHAR
Ident[5];
00051 UCHAR
Version;
00052 UCHAR
Data[2041];
00053 }
VSD_GENERIC, *
PVSD_GENERIC;
00054
00055
00056
00057 #define VSD_LENGTH_IDENT 5 // Length of regid_Identifier (bytes)
00058
00059
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
00086
00087
00088 typedef struct _PARSE_KEYVALUE {
00089 PCHAR
Key;
00090 ULONG
Value;
00091 }
PARSE_KEYVALUE, *
PPARSE_KEYVALUE;
00092
00093
00094
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