/*++ Copyright (c) 2000 Microsoft Corporation Module Name: strtab.h Abstract: String table functions in sputils that setupapi needs to know about but nobody else does Author: Jamie Hunter (JamieHun) Jun-27-2000 Revision History: --*/ #ifdef SPUTILSW // // name mangling so the names don't conflict with any in sputilsa.lib // #define _pSpUtilsStringTableLookUpString _pSpUtilsStringTableLookUpStringW #define _pSpUtilsStringTableGetExtraData _pSpUtilsStringTableGetExtraDataW #define _pSpUtilsStringTableSetExtraData _pSpUtilsStringTableSetExtraDataW #define _pSpUtilsStringTableAddString _pSpUtilsStringTableAddStringW #define _pSpUtilsStringTableEnum _pSpUtilsStringTableEnumW #define _pSpUtilsStringTableStringFromId _pSpUtilsStringTableStringFromIdW #define _pSpUtilsStringTableTrim _pSpUtilsStringTableTrimW #define _pSpUtilsStringTableInitialize _pSpUtilsStringTableInitializeW #define _pSpUtilsStringTableDestroy _pSpUtilsStringTableDestroyW #define _pSpUtilsStringTableDuplicate _pSpUtilsStringTableDuplicateW #define _pSpUtilsStringTableInitializeFromMemoryMappedFile _pSpUtilsStringTableInitializeFromMemoryMappedFileW #define _pSpUtilsStringTableGetDataBlock _pSpUtilsStringTableGetDataBlockW #define _pSpUtilsStringTableLock _pSpUtilsStringTableLockW #define _pSpUtilsStringTableUnlock _pSpUtilsStringTableUnlockW #endif // SPUTILSW // // Define an additional private flag for the pStringTable APIs. // Private flags are added from MSB down; public flags are added // from LSB up. // #define STRTAB_ALREADY_LOWERCASE 0x80000000 // // Don't change this in a hurry - it requires all INF files to be recompiled // There might even be other dependencies // #define HASH_BUCKET_COUNT 509 // // Private string table functions that don't do locking. These are // to be used for optimization purposes by components that already have // a locking mechanism (e.g., HINF, HDEVINFO). // LONG _pSpUtilsStringTableLookUpString( IN PVOID StringTable, IN OUT PTSTR String, OUT PDWORD StringLength, OUT PDWORD HashValue, OPTIONAL OUT PVOID *FindContext, OPTIONAL IN DWORD Flags, OUT PVOID ExtraData, OPTIONAL IN UINT ExtraDataBufferSize OPTIONAL ); LONG _pSpUtilsStringTableAddString( IN PVOID StringTable, IN OUT PTSTR String, IN DWORD Flags, IN PVOID ExtraData, OPTIONAL IN UINT ExtraDataSize OPTIONAL ); BOOL _pSpUtilsStringTableGetExtraData( IN PVOID StringTable, IN LONG StringId, OUT PVOID ExtraData, IN UINT ExtraDataBufferSize ); BOOL _pSpUtilsStringTableSetExtraData( IN PVOID StringTable, IN LONG StringId, IN PVOID ExtraData, IN UINT ExtraDataSize ); BOOL _pSpUtilsStringTableEnum( IN PVOID StringTable, OUT PVOID ExtraDataBuffer, OPTIONAL IN UINT ExtraDataBufferSize, OPTIONAL IN PSTRTAB_ENUM_ROUTINE Callback, IN LPARAM lParam OPTIONAL ); PTSTR _pSpUtilsStringTableStringFromId( IN PVOID StringTable, IN LONG StringId ); PVOID _pSpUtilsStringTableDuplicate( IN PVOID StringTable ); VOID _pSpUtilsStringTableDestroy( IN PVOID StringTable ); VOID _pSpUtilsStringTableTrim( IN PVOID StringTable ); PVOID _pSpUtilsStringTableInitialize( IN UINT ExtraDataSize OPTIONAL ); DWORD _pSpUtilsStringTableGetDataBlock( IN PVOID StringTable, OUT PVOID *StringTableBlock ); BOOL _pSpUtilsStringTableLock( IN PVOID StringTable ); VOID _pSpUtilsStringTableUnlock( IN PVOID StringTable ); // // PNF String table routines // PVOID _pSpUtilsStringTableInitializeFromMemoryMappedFile( IN PVOID DataBlock, IN DWORD DataBlockSize, IN LCID Locale, IN UINT ExtraDataSize ); // // names expected by setupapi (we use the munged names above to stop accidental link errors) // #define pStringTableLookUpString _pSpUtilsStringTableLookUpString #define pStringTableAddString _pSpUtilsStringTableAddString #define pStringTableGetExtraData _pSpUtilsStringTableGetExtraData #define pStringTableSetExtraData _pSpUtilsStringTableSetExtraData #define pStringTableEnum _pSpUtilsStringTableEnum #define pStringTableStringFromId _pSpUtilsStringTableStringFromId #define pStringTableDuplicate _pSpUtilsStringTableDuplicate #define pStringTableDestroy _pSpUtilsStringTableDestroy #define pStringTableTrim _pSpUtilsStringTableTrim #define pStringTableInitialize _pSpUtilsStringTableInitialize #define pStringTableGetDataBlock _pSpUtilsStringTableGetDataBlock #define InitializeStringTableFromMemoryMappedFile _pSpUtilsStringTableInitializeFromMemoryMappedFile