RpcSmGetThreadHandle

The RpcSmGetThreadHandle function returns a thread handle, or NULL, for the stub memory management environment.

#include <rpc.h>
RPC_SS_THREAD_HANDLE RPC_ENTRY RpcSmGetThreadHandle ( 
  RPC_STATUS *  pStatus  
);
 

Parameters

pStatus
Specifies a pointer to the returned status.

Remarks

The RpcSmGetThreadHandle routine is called by applications to obtain a thread handle for the stub memory management environment. A thread used to manage memory for the stub memory management environment uses RpcSmGetThreadHandle to receive a handle for its memory environment. In this way, another thread that calls RpcSmSetThreadHandle by using this handle can then use the same memory management environment.

The same memory management thread handle must be used by multiple threads calling RpcSmAllocate and RpcSmFree in order 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 RpcSmGetThreadHandle to obtain a thread handle for this environment. Then, the spawned threads call RpcSmSetThreadHandle with the new manager handle provided by the parent thread.

Note that the RpcSmGetThreadHandle routine is usually called by a server manager procedure before additional threads are spawned. The stub sets up the memory management environment for the manager procedure, and the manager calls RpcSmGetThreadHandle to make this environment available to the other threads.

A thread can also call RpcSmGetThreadHandle and RpcSmSetThreadHandle to save and restore its memory management environment.

Return Values

Value Meaning
RPC_S_OK Success

QuickInfo

  Windows NT: Yes
  Windows CE: Unsupported.
  Header: Declared in rpcndr.h.
  Import Library: Link with rpcrt4.lib.

See Also

RpcSmAllocate, RpcSmFree, RpcSmSetThreadHandle