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.
200 lines
3.9 KiB
200 lines
3.9 KiB
/*++
|
|
|
|
Copyright (c) 1999 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
exclist.h
|
|
|
|
Abstract:
|
|
|
|
Set of APIs to manage exclusion lists of objects of various well-known types.
|
|
|
|
Author:
|
|
|
|
Ovidiu Temereanca (ovidiut) 23-Nov-1999
|
|
|
|
Revision History:
|
|
|
|
<alias> <date> <comments>
|
|
|
|
--*/
|
|
|
|
//
|
|
// Macro expansion list
|
|
//
|
|
|
|
#define EXCLUSIONLIST_TYPES \
|
|
DEFMAC(ELT_UNUSED, "Unused") \
|
|
DEFMAC(ELT_REGISTRY, "Registry") \
|
|
DEFMAC(ELT_FILE, "File") \
|
|
DEFMAC(ELT_EXTRA1, "Extra1") \
|
|
DEFMAC(ELT_EXTRA2, "Extra2") \
|
|
DEFMAC(ELT_EXTRA3, "Extra3") \
|
|
DEFMAC(ELT_EXTRA4, "Extra4") \
|
|
DEFMAC(ELT_EXTRA5, "Extra5") \
|
|
DEFMAC(ELT_EXTRA6, "Extra6") \
|
|
DEFMAC(ELT_EXTRA7, "Extra7") \
|
|
DEFMAC(ELT_EXTRA8, "Extra8") \
|
|
|
|
// this needs work in order to work with extensible types
|
|
|
|
//
|
|
// Types
|
|
//
|
|
|
|
#define DEFMAC(TypeId,TypeName) TypeId,
|
|
|
|
//
|
|
// these should map 1:1 with MIG_*_TYPE in ism.h for ease of use
|
|
//
|
|
typedef enum {
|
|
EXCLUSIONLIST_TYPES /* , */
|
|
ELT_LAST
|
|
};
|
|
|
|
#undef DEFMAC
|
|
|
|
|
|
//
|
|
// API
|
|
//
|
|
|
|
BOOL
|
|
ElInitialize (
|
|
VOID
|
|
);
|
|
|
|
VOID
|
|
ElTerminateA (
|
|
VOID
|
|
);
|
|
|
|
VOID
|
|
ElTerminateW (
|
|
VOID
|
|
);
|
|
|
|
DWORD
|
|
ElGetTypeId (
|
|
IN PCSTR TypeName
|
|
);
|
|
|
|
PCSTR
|
|
ElGetTypeName (
|
|
IN DWORD TypeId
|
|
);
|
|
|
|
BOOL
|
|
ElAddA (
|
|
IN DWORD ObjectType,
|
|
IN PCSTR ObjectName
|
|
);
|
|
|
|
BOOL
|
|
ElAddW (
|
|
IN DWORD ObjectType,
|
|
IN PCWSTR ObjectName
|
|
);
|
|
|
|
VOID
|
|
ElRemoveAllA (
|
|
VOID
|
|
);
|
|
|
|
VOID
|
|
ElRemoveAllW (
|
|
VOID
|
|
);
|
|
|
|
BOOL
|
|
ElIsExcludedA (
|
|
IN DWORD ObjectType,
|
|
IN PCSTR Object
|
|
);
|
|
|
|
BOOL
|
|
ElIsExcludedW (
|
|
IN DWORD ObjectType,
|
|
IN PCWSTR Object
|
|
);
|
|
|
|
BOOL
|
|
ElIsExcluded2A (
|
|
IN DWORD ObjectType,
|
|
IN PCSTR Node, OPTIONAL
|
|
IN PCSTR Leaf OPTIONAL
|
|
);
|
|
|
|
BOOL
|
|
ElIsExcluded2W (
|
|
IN DWORD ObjectType,
|
|
IN PCWSTR Node, OPTIONAL
|
|
IN PCWSTR Leaf OPTIONAL
|
|
);
|
|
|
|
BOOL
|
|
ElIsTreeExcludedA (
|
|
IN DWORD ObjectType,
|
|
IN PCSTR TreePattern
|
|
);
|
|
|
|
BOOL
|
|
ElIsTreeExcludedW (
|
|
IN DWORD ObjectType,
|
|
IN PCWSTR TreePattern
|
|
);
|
|
|
|
BOOL
|
|
ElIsTreeExcluded2A (
|
|
IN DWORD ObjectType,
|
|
IN PCSTR Root,
|
|
IN PCSTR LeafPattern OPTIONAL
|
|
);
|
|
|
|
BOOL
|
|
ElIsTreeExcluded2W (
|
|
IN DWORD ObjectType,
|
|
IN PCWSTR Root,
|
|
IN PCWSTR Leaf OPTIONAL
|
|
);
|
|
|
|
BOOL
|
|
ElIsObsPatternExcludedA (
|
|
IN DWORD ObjectType,
|
|
IN POBSPARSEDPATTERNA Pattern
|
|
);
|
|
|
|
BOOL
|
|
ElIsObsPatternExcludedW (
|
|
IN DWORD ObjectType,
|
|
IN POBSPARSEDPATTERNW Pattern
|
|
);
|
|
|
|
//
|
|
// Macros
|
|
//
|
|
|
|
#ifdef UNICODE
|
|
|
|
#define ElAdd ElAddW
|
|
#define ElTerminate ElTerminateW
|
|
#define ElRemoveAll ElRemoveAllW
|
|
#define ElIsExcluded ElIsExcludedW
|
|
#define ElIsExcluded2 ElIsExcluded2W
|
|
#define ElIsTreeExcluded ElIsTreeExcludedW
|
|
#define ElIsTreeExcluded2 ElIsTreeExcluded2W
|
|
#define ElIsObsPatternExcluded ElIsObsPatternExcludedW
|
|
|
|
#else
|
|
|
|
#define ElAdd ElAddA
|
|
#define ElTerminate ElTerminateA
|
|
#define ElRemoveAll ElRemoveAllA
|
|
#define ElIsExcluded ElIsExcludedA
|
|
#define ElIsExcluded2 ElIsExcluded2A
|
|
#define ElIsTreeExcluded ElIsTreeExcludedA
|
|
#define ElIsTreeExcluded2 ElIsTreeExcluded2A
|
|
#define ElIsObsPatternExcluded ElIsObsPatternExcludedA
|
|
|
|
#endif
|