Folco (./7) :
short kernel__hd2full(HANDLE h, char buffer[18])
{
SYM_ENTRY* se = SymFindFirst (NULL, FO_RECURSE);
while (se != NULL && se->handle != h);
{
se = SymFindNext ();
}
if (se == NULL)
return 0;
return sprintf (buffer, "%s\%s", SymFindFolderName (), se);
}
Fixed
Ca me parait plus rapide, et la validité du résultat est garantie par le TIOS, il n'y a qu'une erreur possible (le handle n'appartient pas à un fichier, ou n'est pas alloué).
En effet, les deux kernel::Hd2Sym font chacun un SymFindFirst/SymFindNext, et le kernel::Ptr2Hd fait carrément un lookup de la table des handles, avec calcul de l'adresse de fin du handle.
Ouep.