This topic has not yet been rated - Rate this topic

FlsSetValue function

Applies to: desktop apps | Metro style apps

Stores a value in the calling fiber's fiber local storage (FLS) slot for the specified FLS index. Each fiber has its own slot for each FLS index.

Syntax

BOOL WINAPI FlsSetValue(
  __in      DWORD dwFlsIndex,
  __in_opt  PVOID lpFlsData
);

Parameters

dwFlsIndex [in]

The FLS index that was allocated by the FlsAlloc function.

lpFlsData [in, optional]

The value to be stored in the FLS slot for the calling fiber.

Return value

If the function succeeds, the return value is nonzero.

If the function fails, the return value is zero. To get extended error information, call GetLastError. The following errors can be returned.

Return codeDescription
ERROR_INVALID_PARAMETER

The index is not in range.

ERROR_NO_MEMORY

The FLS array has not been allocated.

 

Remarks

FLS indexes are typically allocated by the FlsAlloc function during process or DLL initialization. After an FLS index is allocated, each fiber of the process can use it to access its own FLS slot for that index. A thread specifies an FLS index in a call to FlsSetValue to store a value in its slot. The thread specifies the same index in a subsequent call to FlsGetValue to retrieve the stored value.

Requirements

Minimum supported client

Windows Vista

Minimum supported server

Windows Server 2003

Header

WinBase.h (include Windows.h)

Library

Kernel32.lib

DLL

Kernel32.dll

See also

Fibers
FlsAlloc
FlsGetValue
Process and Thread Functions

 

 

Send comments about this topic to Microsoft

Build date: 3/7/2012

Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ
kernel32.dll:FlsSetValue blocking thread

You'll get your question answered much faster if you ask it on the appropriate MSDN developer forum - go to http://forums.microsoft.com/msdn/. Thanks and good luck!

==========

Hi everyone,

I have a process which hangs on exit with several threads still in Wait mode. The top of the stack for one of the threads is "kernel32.dll!FlsSetValue+0x779". Are there any tools that can help reason out why it is blocked?