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.
|
|
/******************************************************************************
* * 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_
|