diff --git a/dll/appcompat/apphelp/apphelp.c b/dll/appcompat/apphelp/apphelp.c index 34bcd564589..a11a1f8b893 100644 --- a/dll/appcompat/apphelp/apphelp.c +++ b/dll/appcompat/apphelp/apphelp.c @@ -291,7 +291,6 @@ BOOL WINAPI SdbRegisterDatabaseEx( if (!SdbGUIDToString(&Information.Id, GuidBuffer, RTL_NUMBER_OF(GuidBuffer))) { SHIM_ERR("Unable to Convert GUID to string\n"); - SdbFreeDatabaseInformation(&Information); SdbCloseDatabase(pdb); return FALSE; } @@ -374,7 +373,6 @@ BOOL WINAPI SdbRegisterDatabaseEx( SHIM_ERR("Unable to create key %wZ\n", &KeyName); } - SdbFreeDatabaseInformation(&Information); SdbCloseDatabase(pdb); return NT_SUCCESS(Status); diff --git a/dll/appcompat/apphelp/apphelp.h b/dll/appcompat/apphelp/apphelp.h index 8dca5408da3..8d2e892969c 100644 --- a/dll/appcompat/apphelp/apphelp.h +++ b/dll/appcompat/apphelp/apphelp.h @@ -109,7 +109,7 @@ LPWSTR WINAPI SdbGetStringTagPtr(PDB pdb, TAGID tagid); TAGID WINAPI SdbFindFirstNamedTag(PDB pdb, TAGID root, TAGID find, TAGID nametag, LPCWSTR find_name); DWORD WINAPI SdbQueryDataExTagID(PDB pdb, TAGID tiExe, LPCWSTR lpszDataName, LPDWORD lpdwDataType, LPVOID lpBuffer, LPDWORD lpcbBufferSize, TAGID *ptiData); BOOL WINAPI SdbGetDatabaseInformation(PDB pdb, PDB_INFORMATION information); -VOID WINAPI SdbFreeDatabaseInformation(PDB_INFORMATION information); +VOID WINAPI SdbFreeDatabaseInformation(_In_opt_ PDB_INFORMATION information); BOOL WINAPI SdbRegisterDatabaseEx(_In_ LPCWSTR pszDatabasePath, _In_ DWORD dwDatabaseType, _In_opt_ const PULONGLONG pTimeStamp); BOOL WINAPI SdbUnregisterDatabase(_In_ const GUID *pguidDB); diff --git a/dll/appcompat/apphelp/apphelp.spec b/dll/appcompat/apphelp/apphelp.spec index 898fb9c836e..3eac530234d 100644 --- a/dll/appcompat/apphelp/apphelp.spec +++ b/dll/appcompat/apphelp/apphelp.spec @@ -56,7 +56,7 @@ @ stdcall SdbGetBinaryTagData(ptr long) @ stdcall SdbGetDatabaseID(ptr ptr) @ stdcall SdbGetDatabaseInformation(ptr ptr) -@ stub SdbGetDatabaseInformationByName +@ stdcall SdbGetDatabaseInformationByName(wstr ptr) @ stub SdbGetDatabaseMatch @ stdcall SdbGetDatabaseVersion(wstr ptr ptr) @ stub SdbGetDllPath diff --git a/dll/appcompat/apphelp/sdbapi.c b/dll/appcompat/apphelp/sdbapi.c index 21220718d46..86cc0c0de2a 100644 --- a/dll/appcompat/apphelp/sdbapi.c +++ b/dll/appcompat/apphelp/sdbapi.c @@ -521,16 +521,33 @@ BOOL WINAPI SdbGetDatabaseInformation(PDB pdb, PDB_INFORMATION information) } /** - * @name SdbFreeDatabaseInformation - * Free up resources allocated in SdbGetDatabaseInformation + * @unimplemented + * @name SdbGetDatabaseInformationByName + * Get information about the database * - * @param information The information retrieved from SdbGetDatabaseInformation + * @param lpwszFileName The database file + * @param ppAttrInfo The returned information, allocated by this function + * @return TRUE on success */ -VOID WINAPI SdbFreeDatabaseInformation(PDB_INFORMATION information) +BOOL WINAPI +SdbGetDatabaseInformationByName(_In_ LPCTSTR lpwszFileName, _Outptr_ PDB_INFORMATION *ppAttrInfo) { - // No-op + SHIM_ERR("Unimplemented\n"); + *ppAttrInfo = NULL; + return FALSE; } +/** + * @unimplemented + * @name SdbFreeDatabaseInformation + * Free up resources allocated in SdbGetDatabaseInformationByName + * + * @param information The information retrieved from SdbGetDatabaseInformationByName + */ +VOID WINAPI SdbFreeDatabaseInformation(_In_opt_ PDB_INFORMATION information) +{ + SHIM_ERR("Unimplemented\n"); +} /** * Find the first named child tag. diff --git a/dll/ntdll/ldr/ldrapi.c b/dll/ntdll/ldr/ldrapi.c index 6c34746a677..f500f107c84 100644 --- a/dll/ntdll/ldr/ldrapi.c +++ b/dll/ntdll/ldr/ldrapi.c @@ -1631,7 +1631,7 @@ LdrFlushAlternateResourceModules(VOID) /* * @unimplemented - * See https://www.kernelmode.info/forum/viewtopic.php?t=991 + * See https://web.archive.org/web/20231210142610/https://kernelmode.info/forum/viewtopic3973.html?t=991 */ NTSTATUS NTAPI