RpcSsGetThreadHandle function (rpcndr.h)

The RpcSsGetThreadHandle function returns a thread handle for the stub memory–management environment.


RPC_SS_THREAD_HANDLE RpcSsGetThreadHandle();

Return value

Value Meaning
The call succeeded.
Note  For a list of valid error codes, see RPC Return Values.


An application calls RpcSsGetThreadHandle to obtain a thread handle for the stub memory–management environment. A thread used to manage memory for the stub memory–management environment uses RpcSsGetThreadHandle to receive a handle for its memory environment. In this way, another thread that calls RpcSsSetThreadHandle by using this handle can then use the same memory-management environment.

The same thread handle must be used by multiple threads calling RpcSsAllocate and RpcSsFree to manage the same memory. Before spawning new threads to manage the same memory, the thread that established the memory-management environment (parent thread) calls RpcSsGetThreadHandle to obtain a thread handle for this environment. Then, the spawned threads call RpcSsSetThreadHandle with the handle provided by the parent thread.

Typically, a server manager procedure calls RpcSsGetThreadHandle before additional threads are spawned. The stub sets up the memory-management environment for the manager procedure, and the manager calls RpcSsGetThreadHandle to make this environment available to the other threads.

A thread can also call RpcSsGetThreadHandle and RpcSsSetThreadHandle to save and restore its memory-management environment.

Note  RpcSsGetThreadHandle raises exceptions, while RpcSmGetThreadHandle returns the error code.


Minimum supported client Windows 2000 Professional [desktop apps | UWP apps]
Minimum supported server Windows 2000 Server [desktop apps | UWP apps]
Target Platform Windows
Header rpcndr.h (include Rpc.h)
Library Rpcrt4.lib
DLL Rpcrt4.dll

See also