mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 13:45:50 +00:00
[NTDLL][KERNEL32] Implement FLS callbacks.
This commit is contained in:
parent
f0f8f1c7d9
commit
06eb99edef
3 changed files with 109 additions and 29 deletions
|
@ -1207,8 +1207,29 @@ LdrShutdownThread(VOID)
|
|||
/* Check for FLS Data */
|
||||
if (Teb->FlsData)
|
||||
{
|
||||
/* FIXME */
|
||||
DPRINT1("We don't support FLS Data yet\n");
|
||||
/* Mimic BaseRundownFls */
|
||||
ULONG n, FlsHighIndex;
|
||||
PRTL_FLS_DATA pFlsData;
|
||||
PFLS_CALLBACK_FUNCTION lpCallback;
|
||||
|
||||
pFlsData = Teb->FlsData;
|
||||
|
||||
RtlAcquirePebLock();
|
||||
FlsHighIndex = NtCurrentPeb()->FlsHighIndex;
|
||||
RemoveEntryList(&pFlsData->ListEntry);
|
||||
RtlReleasePebLock();
|
||||
|
||||
for (n = 1; n <= FlsHighIndex; ++n)
|
||||
{
|
||||
lpCallback = NtCurrentPeb()->FlsCallback[n];
|
||||
if (lpCallback && pFlsData->Data[n])
|
||||
{
|
||||
lpCallback(pFlsData->Data[n]);
|
||||
}
|
||||
}
|
||||
|
||||
RtlFreeHeap(RtlGetProcessHeap(), 0, pFlsData);
|
||||
Teb->FlsData = NULL;
|
||||
}
|
||||
|
||||
/* Check for Fiber data */
|
||||
|
@ -1786,6 +1807,7 @@ LdrpInitializeProcess(IN PCONTEXT Context,
|
|||
Peb->FlsBitmapBits,
|
||||
FLS_MAXIMUM_AVAILABLE);
|
||||
RtlSetBit(&FlsBitMap, 0);
|
||||
InitializeListHead(&Peb->FlsListHead);
|
||||
|
||||
/* Initialize TLS Bitmap */
|
||||
RtlInitializeBitMap(&TlsBitMap,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue