19#define HID_DOS_PATHS 0x1
20#define HID_DATABASE_FULLPATH 0x2
21#define HID_NO_DATABASE 0x4
22#define HID_DATABASE_TYPE_MASK 0xF00F0000
23#define SDB_DATABASE_MAIN_MSI 0x80020000
24#define SDB_DATABASE_MAIN_SHIM 0x80030000
25#define SDB_DATABASE_MAIN_DRIVERS 0x80040000
28#define SDB_DATABASE_SHIM 0x00010000
45#define SDB_MAX_SDBS 16
46#define SDB_MAX_EXES 16
47#define SDB_MAX_LAYERS 8
50#define SHIMREG_DISABLE_SHIM (0x00000001)
51#define SHIMREG_DISABLE_APPHELP (0x00000002)
52#define SHIMREG_APPHELP_NOUI (0x00000004)
53#define SHIMREG_APPHELP_CANCEL (0x10000000)
54#define SHIMREG_DISABLE_SXS (0x00000010)
55#define SHIMREG_DISABLE_LAYER (0x00000020)
56#define SHIMREG_DISABLE_DRIVER (0x00000040)
59#define SHIMREG_HAS_ENVIRONMENT (0x1)
62#define SDBGMEF_IGNORE_ENVIRONMENT (0x1)
79#define DB_INFO_FLAGS_VALID_GUID 1
92#ifndef APPHELP_NOSDBPAPI
146#define ATTRIBUTE_AVAILABLE 0x1
147#define ATTRIBUTE_FAILED 0x2
BOOL WINAPI SdbFreeFileAttributes(PATTRINFO attr_info)
DWORD SdbpStrsize(PCWSTR string)
DWORD WINAPI SdbGetTagDataSize(PDB pdb, TAGID tagid)
struct _DB_INFORMATION DB_INFORMATION
BOOL WINAPI SdbGetDatabaseID(PDB pdb, GUID *Guid)
BOOL WINAPI SdbGetDatabaseInformation(PDB pdb, PDB_INFORMATION information)
struct tagSDBQUERYRESULT * PSDBQUERYRESULT
TAG WINAPI SdbGetTagFromTagID(PDB pdb, TAGID tagid)
TAGID WINAPI SdbFindFirstTag(PDB pdb, TAGID parent, TAG tag)
BOOL WINAPI SdbTagRefToTagID(HSDB hsdb, TAGREF trWhich, PDB *ppdb, TAGID *ptiWhich)
LPCWSTR WINAPI SdbTagToString(TAG tag)
BOOL WINAPI SdbUnregisterDatabase(_In_ const GUID *pguidDB)
TAGID WINAPI SdbGetFirstChild(PDB pdb, TAGID parent)
DWORD WINAPI SdbQueryDataExTagID(PDB pdb, TAGID tiExe, LPCWSTR lpszDataName, LPDWORD lpdwDataType, LPVOID lpBuffer, LPDWORD lpcbBufferSize, TAGID *ptiData)
LPWSTR WINAPI SdbpGetString(PDB pdb, TAGID tagid, PDWORD size)
BOOL WINAPI SdbpReadData(PDB pdb, PVOID dest, DWORD offset, DWORD num)
struct tagATTRINFO ATTRINFO
TAGID WINAPI SdbGetNextChild(PDB pdb, TAGID parent, TAGID prev_child)
struct tagATTRINFO * PATTRINFO
BOOL WINAPI SdbGetMatchingExe(HSDB hsdb, LPCWSTR path, LPCWSTR module_name, LPCWSTR env, DWORD flags, PSDBQUERYRESULT result)
TAGID WINAPI SdbFindFirstNamedTag(PDB pdb, TAGID root, TAGID find, TAGID nametag, LPCWSTR find_name)
void WINAPI SdbReleaseDatabase(HSDB)
PWSTR SdbpStrDup(LPCWSTR string)
struct tagSDBQUERYRESULT SDBQUERYRESULT
BOOL WINAPI SdbReadBinaryTag(PDB pdb, TAGID tagid, PBYTE buffer, DWORD size)
BOOL WINAPI SdbGUIDToString(CONST GUID *Guid, PWSTR GuidString, SIZE_T Length)
PDB WINAPI SdbOpenDatabase(LPCWSTR path, PATH_TYPE type)
HRESULT WINAPI SdbGetAppPatchDir(HSDB db, LPWSTR path, DWORD size)
BOOL WINAPI SdbTagIDToTagRef(HSDB hsdb, PDB pdb, TAGID tiWhich, TAGREF *ptrWhich)
BOOL WINAPI SetPermLayerState(PCWSTR wszPath, PCWSTR wszLayer, DWORD dwFlags, BOOL bMachine, BOOL bEnable)
BOOL WINAPI SdbIsNullGUID(CONST GUID *Guid)
BOOL WINAPI SdbRegisterDatabaseEx(_In_ LPCWSTR pszDatabasePath, _In_ DWORD dwDatabaseType, _In_opt_ const PULONGLONG pTimeStamp)
VOID WINAPI SdbFreeDatabaseInformation(PDB_INFORMATION information)
HSDB WINAPI SdbInitDatabase(DWORD, LPCWSTR)
void WINAPI SdbCloseDatabase(PDB)
struct _DB_INFORMATION * PDB_INFORMATION
QWORD WINAPI SdbReadQWORDTag(PDB pdb, TAGID tagid, QWORD ret)
BOOL WINAPI AllowPermLayer(PCWSTR path)
BOOL WINAPI SdbUnpackAppCompatData(HSDB hsdb, LPCWSTR pszImageName, PVOID pData, PSDBQUERYRESULT pQueryResult)
BOOL WINAPI SdbGetPermLayerKeys(PCWSTR wszPath, PWSTR pwszLayers, PDWORD pdwBytes, DWORD dwFlags)
TAGID WINAPI SdbFindNextTag(PDB pdb, TAGID parent, TAGID prev_child)
DWORD WINAPI SdbQueryData(HSDB hsdb, TAGREF trWhich, LPCWSTR lpszDataName, LPDWORD lpdwDataType, LPVOID lpBuffer, LPDWORD lpcbBufferSize)
BOOL WINAPI SdbGetFileAttributes(LPCWSTR path, PATTRINFO *attr_info_ret, LPDWORD attr_count)
DWORD WINAPI SdbReadDWORDTag(PDB pdb, TAGID tagid, DWORD ret)
LPWSTR WINAPI SdbGetStringTagPtr(PDB pdb, TAGID tagid)
static TAGREF LPCWSTR LPDWORD LPVOID lpBuffer
static TAGREF LPCWSTR lpszDataName
static PDB_INFORMATION information
static TAGREF PDB TAGID * ptiWhich
static TAGID TAGID TAGID LPCWSTR find_name
static TAGREF LPCWSTR LPDWORD lpdwDataType
static TAGID LPCWSTR LPDWORD LPVOID LPDWORD TAGID * ptiData
static PDB TAGID TAGREF * ptrWhich
static LPCWSTR LPCWSTR module_name
static LPCWSTR LPCWSTR LPCWSTR env
static TAGID TAGID TAGID nametag
static TAGREF LPCWSTR LPDWORD LPVOID LPDWORD lpcbBufferSize
GLuint GLuint GLsizei GLenum type
static PCWSTR BOOL bMachine
static PWSTR PDWORD pdwBytes
LPCWSTR LPCWSTR LPCWSTR DWORD PSDBQUERYRESULT_VISTA pQueryResult
__GNU_EXTENSION typedef unsigned __int64 * PULONGLONG
_In_ ULONG _In_ ULONG _In_ ULONG Length
DWORD const PULONGLONG pTimeStamp
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
_Must_inspect_result_ _In_ WDFOBJECT _In_ CONST GUID * Guid
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags