|
|
/*++
Copyright (c) 2000 Microsoft Corporation
Module Name:
hwcomp.h
Abstract:
Module's interface.
Author:
Ovidiu Temereanca (ovidiut) 04-Jul-2000 Initial implementation
Revision History:
--*/
//
// Interface
//
BOOL WINAPI HwdbInitializeA ( IN PCSTR TempDir );
BOOL WINAPI HwdbInitializeW ( IN PCWSTR TempDir );
VOID WINAPI HwdbTerminate ( VOID );
HANDLE WINAPI HwdbOpenA ( IN PCSTR DatabaseFile );
HANDLE WINAPI HwdbOpenW ( IN PCWSTR DatabaseFile );
VOID WINAPI HwdbClose ( IN HANDLE Hwdb );
typedef BOOL (*HWDBAPPENDINFSCALLBACKA) ( IN PVOID Context, IN PCSTR PnpId, IN PCSTR ActualInfFilename, IN PCSTR SourceDir, IN PCSTR FullInfPath );
BOOL WINAPI HwdbAppendInfsA ( IN HANDLE Hwdb, IN PCSTR SourceDirectory, IN HWDBAPPENDINFSCALLBACKA Callback, OPTIONAL IN PVOID CallbackContext OPTIONAL );
typedef BOOL (*HWDBAPPENDINFSCALLBACKW) ( IN PVOID Context, IN PCWSTR PnpId, IN PCWSTR ActualInfFilename, IN PCWSTR SourceDir, IN PCWSTR FullInfPath );
BOOL WINAPI HwdbAppendInfsW ( IN HANDLE Hwdb, IN PCWSTR SourceDirectory, IN HWDBAPPENDINFSCALLBACKW Callback, OPTIONAL IN PVOID CallbackContext OPTIONAL );
BOOL WINAPI HwdbAppendDatabase ( IN HANDLE HwdbTarget, IN HANDLE HwdbSource );
BOOL WINAPI HwdbFlushA ( IN HANDLE Hwdb, IN PCSTR OutputFile );
BOOL WINAPI HwdbFlushW ( IN HANDLE Hwdb, IN PCWSTR OutputFile );
BOOL WINAPI HwdbHasDriverA ( IN HANDLE Hwdb, IN PCSTR PnpId, OUT PBOOL Unsupported );
BOOL WINAPI HwdbHasDriverW ( IN HANDLE Hwdb, IN PCWSTR PnpId, OUT PBOOL Unsupported );
BOOL WINAPI HwdbHasAnyDriverA ( IN HANDLE Hwdb, IN PCSTR PnpIds, OUT PBOOL Unsupported );
BOOL WINAPI HwdbHasAnyDriverW ( IN HANDLE Hwdb, IN PCWSTR PnpIds, OUT PBOOL Unsupported );
typedef BOOL (WINAPI* PHWDBINITIALIZEA) ( IN PCSTR TempDir );
typedef BOOL (WINAPI* PHWDBINITIALIZEW) ( IN PCWSTR TempDir );
typedef VOID (WINAPI* PHWDBTERMINATE) ( VOID );
typedef HANDLE (WINAPI* PHWDBOPENA) ( IN PCSTR DatabaseFile );
typedef HANDLE (WINAPI* PHWDBOPENW) ( IN PCWSTR DatabaseFile );
typedef VOID (WINAPI* PHWDBCLOSE) ( IN HANDLE Hwdb );
typedef BOOL (WINAPI* PHWDBAPPENDINFSA) ( IN HANDLE Hwdb, IN PCSTR SourceDirectory, IN HWDBAPPENDINFSCALLBACKA Callback, OPTIONAL IN PVOID CallbackContext OPTIONAL );
typedef BOOL (WINAPI* PHWDBAPPENDINFSW) ( IN HANDLE Hwdb, IN PCWSTR SourceDirectory, IN HWDBAPPENDINFSCALLBACKW Callback, OPTIONAL IN PVOID CallbackContext OPTIONAL );
typedef BOOL (WINAPI* PHWDBAPPENDDATABASE) ( IN HANDLE HwdbTarget, IN HANDLE HwdbSource );
typedef BOOL (WINAPI* PHWDBFLUSHA) ( IN HANDLE Hwdb, IN PCSTR OutputFile );
typedef BOOL (WINAPI* PHWDBFLUSHW) ( IN HANDLE Hwdb, IN PCWSTR OutputFile );
typedef BOOL (WINAPI* PHWDBHASDRIVERA) ( IN HANDLE Hwdb, IN PCSTR PnpId, OUT PBOOL Unsupported );
typedef BOOL (WINAPI* PHWDBHASDRIVERW) ( IN HANDLE Hwdb, IN PCWSTR PnpId, OUT PBOOL Unsupported );
typedef BOOL (WINAPI* PHWDBHASANYDRIVERA) ( IN HANDLE Hwdb, IN PCSTR PnpId, OUT PBOOL Unsupported );
typedef BOOL (WINAPI* PHWDBHASANYDRIVERW) ( IN HANDLE Hwdb, IN PCWSTR PnpId, OUT PBOOL Unsupported );
#if 0
typedef BOOL (WINAPI* PHWDBENUM_CALLBACKA) ( IN PVOID UserContext, IN PCSTR PnpId, IN PCSTR InfFileName );
typedef BOOL (WINAPI* PHWDBENUM_CALLBACKW) ( IN PVOID UserContext, IN PCWSTR PnpId, IN PCWSTR InfFileName );
BOOL HwdbEnumeratePnpIdA ( IN HANDLE Hwdb, IN PHWDBENUM_CALLBACKA EnumCallback, IN PVOID UserContext );
BOOL HwdbEnumeratePnpIdW ( IN HANDLE Hwdb, IN PHWDBENUM_CALLBACKW EnumCallback, IN PVOID UserContext );
typedef BOOL (WINAPI* PHWDBENUMERATEPNPIDA) ( IN HANDLE Hwdb, IN PHWDBENUM_CALLBACKA EnumCallback, IN PVOID UserContext );
typedef BOOL (WINAPI* PHWDBENUMERATEPNPIDW) ( IN HANDLE Hwdb, IN PHWDBENUM_CALLBACKW EnumCallback, IN PVOID UserContext );
#endif
typedef struct { CHAR InfFile[MAX_PATH]; PCSTR PnpIds; PVOID Internal; } HWDBINF_ENUMA, *PHWDBINF_ENUMA;
typedef struct { PCWSTR InfFile; PCWSTR PnpIds; PVOID Internal; } HWDBINF_ENUMW, *PHWDBINF_ENUMW;
BOOL HwdbEnumFirstInfA ( OUT PHWDBINF_ENUMA EnumPtr, IN PCSTR DatabaseFile );
BOOL HwdbEnumFirstInfW ( OUT PHWDBINF_ENUMW EnumPtr, IN PCWSTR DatabaseFile );
BOOL HwdbEnumNextInfA ( IN OUT PHWDBINF_ENUMA EnumPtr );
BOOL HwdbEnumNextInfW ( IN OUT PHWDBINF_ENUMW EnumPtr );
VOID HwdbAbortEnumInfA ( IN OUT PHWDBINF_ENUMA EnumPtr );
VOID HwdbAbortEnumInfW ( IN OUT PHWDBINF_ENUMW EnumPtr );
//
// exported function names
//
#define S_HWDBAPI_HWDBINITIALIZE_A "HwdbInitializeA"
#define S_HWDBAPI_HWDBINITIALIZE_W "HwdbInitializeW"
#define S_HWDBAPI_HWDBTERMINATE "HwdbTerminate"
#define S_HWDBAPI_HWDBOPEN_A "HwdbOpenA"
#define S_HWDBAPI_HWDBOPEN_W "HwdbOpenW"
#define S_HWDBAPI_HWDBCLOSE "HwdbClose"
#define S_HWDBAPI_HWDBAPPENDINFS_A "HwdbAppendInfsA"
#define S_HWDBAPI_HWDBAPPENDINFS_W "HwdbAppendInfsW"
#define S_HWDBAPI_HWDBAPPENDDATABASE "HwdbAppendDatabase"
#define S_HWDBAPI_HWDBFLUSH_A "HwdbFlushA"
#define S_HWDBAPI_HWDBFLUSH_W "HwdbFlushW"
#define S_HWDBAPI_HWDBHASDRIVER_A "HwdbHasDriverA"
#define S_HWDBAPI_HWDBHASDRIVER_W "HwdbHasDriverW"
#define S_HWDBAPI_HWDBHASANYDRIVER_A "HwdbHasAnyDriverA"
#define S_HWDBAPI_HWDBHASANYDRIVER_W "HwdbHasAnyDriverW"
typedef struct { PHWDBINITIALIZEA HwdbInitialize; PHWDBTERMINATE HwdbTerminate; PHWDBOPENA HwdbOpen; PHWDBCLOSE HwdbClose; PHWDBAPPENDINFSA HwdbAppendInfs; PHWDBFLUSHA HwdbFlush; PHWDBHASDRIVERA HwdbHasDriver; PHWDBHASANYDRIVERA HwdbHasAnyDriver; } HWDB_ENTRY_POINTSA, *PHWDB_ENTRY_POINTSA;
typedef struct { PHWDBINITIALIZEW HwdbInitialize; PHWDBTERMINATE HwdbTerminate; PHWDBOPENW HwdbOpen; PHWDBCLOSE HwdbClose; PHWDBAPPENDINFSW HwdbAppendInfs; PHWDBFLUSHW HwdbFlush; PHWDBHASDRIVERW HwdbHasDriver; PHWDBHASANYDRIVERW HwdbHasAnyDriver; } HWDB_ENTRY_POINTSW, *PHWDB_ENTRY_POINTSW;
#ifdef UNICODE
#define S_HWDBAPI_HWDBINITIALIZE S_HWDBAPI_HWDBINITIALIZE_W
#define PHWDBINITIALIZE PHWDBINITIALIZEW
#define S_HWDBAPI_HWDBOPEN S_HWDBAPI_HWDBOPEN_W
#define PHWDBOPEN PHWDBOPENW
#define S_HWDBAPI_HWDBAPPENDINFS S_HWDBAPI_HWDBAPPENDINFS_W
#define PHWDBAPPENDINFS PHWDBAPPENDINFSW
#define S_HWDBAPI_HWDBFLUSH S_HWDBAPI_HWDBFLUSH_W
#define PHWDBFLUSH PHWDBFLUSHW
#define S_HWDBAPI_HWDBHASDRIVER S_HWDBAPI_HWDBHASDRIVER_W
#define PHWDBHASDRIVER PHWDBHASDRIVERW
#define S_HWDBAPI_HWDBHASANYDRIVER S_HWDBAPI_HWDBHASANYDRIVER_W
#define PHWDBHASANYDRIVER PHWDBHASANYDRIVERW
#define HWDBINF_ENUM HWDBINF_ENUMW
#define PHWDBINF_ENUM PHWDBINF_ENUMW
#define HwdbEnumFirstInf HwdbEnumFirstInfW
#define HwdbEnumNextInf HwdbEnumNextInfW
#define HwdbAbortEnumInf HwdbAbortEnumInfW
#define HWDB_ENTRY_POINTS HWDB_ENTRY_POINTSW
#define PHWDB_ENTRY_POINTS PHWDB_ENTRY_POINTSW
#else
#define S_HWDBAPI_HWDBINITIALIZE S_HWDBAPI_HWDBINITIALIZE_A
#define PHWDBINITIALIZE PHWDBINITIALIZEA
#define S_HWDBAPI_HWDBOPEN S_HWDBAPI_HWDBOPEN_A
#define PHWDBOPEN PHWDBOPENA
#define S_HWDBAPI_HWDBAPPENDINFS S_HWDBAPI_HWDBAPPENDINFS_A
#define PHWDBAPPENDINFS PHWDBAPPENDINFSA
#define S_HWDBAPI_HWDBFLUSH S_HWDBAPI_HWDBFLUSH_A
#define PHWDBFLUSH PHWDBFLUSHA
#define S_HWDBAPI_HWDBHASDRIVER S_HWDBAPI_HWDBHASDRIVER_A
#define PHWDBHASDRIVER PHWDBHASDRIVERA
#define S_HWDBAPI_HWDBHASANYDRIVER S_HWDBAPI_HWDBHASANYDRIVER_A
#define PHWDBHASANYDRIVER PHWDBHASANYDRIVERA
#define HWDBINF_ENUM HWDBINF_ENUMA
#define PHWDBINF_ENUM PHWDBINF_ENUMA
#define HwdbEnumFirstInf HwdbEnumFirstInfA
#define HwdbEnumNextInf HwdbEnumNextInfA
#define HwdbAbortEnumInf HwdbAbortEnumInfA
#define HWDB_ENTRY_POINTS HWDB_ENTRY_POINTSA
#define PHWDB_ENTRY_POINTS PHWDB_ENTRY_POINTSA
#endif
|