1 /* 2 * The volume information definitions of a Windows Prefetch File (PF) 3 * 4 * Copyright (C) 2011-2021, Joachim Metz <joachim.metz@gmail.com> 5 * 6 * Refer to AUTHORS for acknowledgements. 7 * 8 * This program is free software: you can redistribute it and/or modify 9 * it under the terms of the GNU Lesser General Public License as published by 10 * the Free Software Foundation, either version 3 of the License, or 11 * (at your option) any later version. 12 * 13 * This program is distributed in the hope that it will be useful, 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * GNU General Public License for more details. 17 * 18 * You should have received a copy of the GNU Lesser General Public License 19 * along with this program. If not, see <https://www.gnu.org/licenses/>. 20 */ 21 22 #if !defined( _SCCA_VOLUME_INFORMATION_H ) 23 #define _SCCA_VOLUME_INFORMATION_H 24 25 #include <common.h> 26 #include <types.h> 27 28 #if defined( __cplusplus ) 29 extern "C" { 30 #endif 31 32 typedef struct scca_volume_information_v17 scca_volume_information_v17_t; 33 34 struct scca_volume_information_v17 35 { 36 /* The (volume) device path offset 37 * Consists of 4 bytes 38 */ 39 uint8_t device_path_offset[ 4 ]; 40 41 /* The (volume) device path number of characters 42 * Consists of 4 bytes 43 */ 44 uint8_t device_path_number_of_characters[ 4 ]; 45 46 /* The (volume) creation time 47 * Consists of 8 bytes 48 */ 49 uint8_t creation_time[ 8 ]; 50 51 /* The (volume) serial number 52 * Consists of 4 bytes 53 */ 54 uint8_t serial_number[ 4 ]; 55 56 /* The file references offset 57 * Consists of 4 bytes 58 */ 59 uint8_t file_references_offset[ 4 ]; 60 61 /* The file references size 62 * Consists of 4 bytes 63 */ 64 uint8_t file_references_size[ 4 ]; 65 66 /* The directory strings array offset 67 * Consists of 4 bytes 68 */ 69 uint8_t directory_strings_array_offset[ 4 ]; 70 71 /* The number of directory strings 72 * Consists of 4 bytes 73 */ 74 uint8_t number_of_directory_strings[ 4 ]; 75 76 /* Unknown 77 * Consists of 4 bytes 78 */ 79 uint8_t unknown1[ 4 ]; 80 }; 81 82 typedef struct scca_volume_information_v23 scca_volume_information_v23_t; 83 84 struct scca_volume_information_v23 85 { 86 /* The (volume) device path offset 87 * Consists of 4 bytes 88 */ 89 uint8_t device_path_offset[ 4 ]; 90 91 /* The (volume) device path number of characters 92 * Consists of 4 bytes 93 */ 94 uint8_t device_path_number_of_characters[ 4 ]; 95 96 /* The (volume) creation time 97 * Consists of 8 bytes 98 */ 99 uint8_t creation_time[ 8 ]; 100 101 /* The (volume) serial number 102 * Consists of 4 bytes 103 */ 104 uint8_t serial_number[ 4 ]; 105 106 /* The file references offset 107 * Consists of 4 bytes 108 */ 109 uint8_t file_references_offset[ 4 ]; 110 111 /* The file references size 112 * Consists of 4 bytes 113 */ 114 uint8_t file_references_size[ 4 ]; 115 116 /* The directory strings array offset 117 * Consists of 4 bytes 118 */ 119 uint8_t directory_strings_array_offset[ 4 ]; 120 121 /* The number of directory strings 122 * Consists of 4 bytes 123 */ 124 uint8_t number_of_directory_strings[ 4 ]; 125 126 /* Unknown 127 * Consists of 4 bytes 128 */ 129 uint8_t unknown1[ 4 ]; 130 131 /* Unknown 132 * Consists of 28 bytes 133 */ 134 uint8_t unknown2[ 28 ]; 135 136 /* Unknown 137 * Consists of 4 bytes 138 */ 139 uint8_t unknown3[ 4 ]; 140 141 /* Unknown 142 * Consists of 28 bytes 143 */ 144 uint8_t unknown4[ 28 ]; 145 146 /* Unknown 147 * Consists of 4 bytes 148 */ 149 uint8_t unknown5[ 4 ]; 150 }; 151 152 typedef struct scca_volume_information_v30 scca_volume_information_v30_t; 153 154 struct scca_volume_information_v30 155 { 156 /* The (volume) device path offset 157 * Consists of 4 bytes 158 */ 159 uint8_t device_path_offset[ 4 ]; 160 161 /* The (volume) device path number of characters 162 * Consists of 4 bytes 163 */ 164 uint8_t device_path_number_of_characters[ 4 ]; 165 166 /* The (volume) creation time 167 * Consists of 8 bytes 168 */ 169 uint8_t creation_time[ 8 ]; 170 171 /* The (volume) serial number 172 * Consists of 4 bytes 173 */ 174 uint8_t serial_number[ 4 ]; 175 176 /* The file references offset 177 * Consists of 4 bytes 178 */ 179 uint8_t file_references_offset[ 4 ]; 180 181 /* The file references size 182 * Consists of 4 bytes 183 */ 184 uint8_t file_references_size[ 4 ]; 185 186 /* The directory strings array offset 187 * Consists of 4 bytes 188 */ 189 uint8_t directory_strings_array_offset[ 4 ]; 190 191 /* The number of directory strings 192 * Consists of 4 bytes 193 */ 194 uint8_t number_of_directory_strings[ 4 ]; 195 196 /* Unknown 197 * Consists of 4 bytes 198 */ 199 uint8_t unknown1[ 4 ]; 200 201 /* Unknown 202 * Consists of 24 bytes 203 */ 204 uint8_t unknown2[ 24 ]; 205 206 /* Unknown 207 * Consists of 4 bytes 208 */ 209 uint8_t unknown3[ 4 ]; 210 211 /* Unknown 212 * Consists of 24 bytes 213 */ 214 uint8_t unknown4[ 24 ]; 215 216 /* Unknown 217 * Consists of 4 bytes 218 */ 219 uint8_t unknown5[ 4 ]; 220 }; 221 222 #if defined( __cplusplus ) 223 } 224 #endif 225 226 #endif /* !defined( _SCCA_VOLUME_INFORMATION_H ) */ 227 228