Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

64 lines
801 B

/*++
Copyright (c) 1991 Microsoft Corporation
Module Name:
hivesum.c
Abstract:
Hive header checksum module.
Author:
Bryan M. Willman (bryanwi) 9-Apr-92
Environment:
Revision History:
--*/
#include "cmp.h"
#ifdef ALLOC_PRAGMA
#pragma alloc_text(PAGE,HvpHeaderCheckSum)
#endif
ULONG
HvpHeaderCheckSum(
PHBASE_BLOCK BaseBlock
)
/*++
Routine Description:
Compute the checksum for a hive disk header.
Arguments:
BaseBlock - supplies pointer to the header to checksum
Return Value:
the check sum.
--*/
{
ULONG sum;
ULONG i;
sum = 0;
for (i = 0; i < 127; i++) {
sum ^= ((PULONG)BaseBlock)[i];
}
if (sum == (ULONG)-1) {
sum = (ULONG)-2;
}
if (sum == 0) {
sum = 1;
}
return sum;
}