windows-nt/Source/XPSP1/NT/admin/pchealth/sr/inc/blob.h
2020-09-26 16:20:57 +08:00

82 lines
2.2 KiB
C

/******************************************************************************
*
* Copyright (c) 1999 Microsoft Corporation
*
* Module Name:
* Blob.h
*
* Abstract:
* This file blob related definitions for ring0 / ring3
*
* Revision History:
* Kanwaljit S Marok ( kmarok ) 05/17/99
* created
*
*****************************************************************************/
#ifndef _BLOB_H_
#define _BLOB_H_
#ifdef __cplusplus
extern "C" {
#endif
#define BLOB_VERSION_NUM 3 // Version 3 for Whistler
#define BLOB_MAGIC_NUM 12345 // Magic number
enum BLOB_TYPE
{
BLOB_TYPE_CONFIG = 0, // Config blob may contain other blobs
BLOB_TYPE_PATHTREE = 1, // Path tree blob
BLOB_TYPE_HASHLIST = 2, // Hashed list blob
BLOB_TYPE_CONTAINER= 3, // Container for other blobs
};
typedef struct _BLOB_HEADER
{
DWORD m_dwMaxSize ;
DWORD m_dwVersion ;
DWORD m_dwBlbType ;
DWORD m_dwEntries ;
DWORD m_dwMagicNum;
} BlobHeader;
#ifndef __FILELIST_STRUCTS__
#define DEFINE_BLOB_HEADER() BlobHeader
#else
#define DEFINE_BLOB_HEADER() BlobHeader m_BlobHeader
#endif
//
// Some convenience macros
//
#define INIT_BLOB_HEADER( pBlob, MaxSize, Version, BlbType, Entries ) \
((BlobHeader *)pBlob)->m_dwMaxSize = MaxSize; \
((BlobHeader *)pBlob)->m_dwVersion = Version; \
((BlobHeader *)pBlob)->m_dwBlbType = BlbType; \
((BlobHeader *)pBlob)->m_dwEntries = Entries; \
((BlobHeader *)pBlob)->m_dwMagicNum = BLOB_MAGIC_NUM;
#define BLOB_HEADER(pBlob) ( ((BlobHeader *)pBlob) )
#define BLOB_MAXSIZE(pBlob) ( ((BlobHeader *)pBlob)->m_dwMaxSize )
#define BLOB_VERSION(pBlob) ( ((BlobHeader *)pBlob)->m_dwVersion )
#define BLOB_BLBTYPE(pBlob) ( ((BlobHeader *)pBlob)->m_dwBlbType )
#define BLOB_ENTRIES(pBlob) ( ((BlobHeader *)pBlob)->m_dwEntries )
#define BLOB_MAGIC(pBlob) ( ((BlobHeader *)pBlob)->m_dwMagicNum )
#define VERIFY_BLOB_VERSION(pBlob) (BLOB_VERSION(pBlob) == BLOB_VERSION_NUM)
#define VERIFY_BLOB_MAGIC(pBlob) (BLOB_MAGIC(pBlob) == BLOB_MAGIC_NUM )
#ifdef __cplusplus
}
#endif
#endif // _BLOB_H_