* On-disk header for registry hive file.
*/
+#define HIVE_FILENAME_MAXLEN 31
+
typedef struct _HBASE_BLOCK
{
/* Hive identifier "regf" (0x66676572) */
/* Last 31 UNICODE characters, plus terminating NULL character,
of the full name of the hive file */
- WCHAR FileName[32];
+ WCHAR FileName[HIVE_FILENAME_MAXLEN + 1];
ULONG Reserved1[99];
/* Copy the 31 last characters of the hive file name if any */
if (FileName)
{
- if (FileName->Length / sizeof(WCHAR) <= 31)
+ if (FileName->Length / sizeof(WCHAR) <= HIVE_FILENAME_MAXLEN)
{
RtlCopyMemory(BaseBlock->FileName,
FileName->Buffer,
else
{
RtlCopyMemory(BaseBlock->FileName,
- FileName->Buffer + FileName->Length / sizeof(WCHAR) - 31,
- 31 * sizeof(WCHAR));
+ FileName->Buffer +
+ FileName->Length / sizeof(WCHAR) - HIVE_FILENAME_MAXLEN,
+ HIVE_FILENAME_MAXLEN * sizeof(WCHAR));
}
/* NULL-terminate */
- BaseBlock->FileName[31] = L'\0';
+ BaseBlock->FileName[HIVE_FILENAME_MAXLEN] = L'\0';
}
BaseBlock->CheckSum = HvpHiveHeaderChecksum(BaseBlock);