How to Share a Handle Between Two Threads

How to Share a Handle Between Two Threads

Whenever a handle is passed to another thread, use the DuplicateHandle API to create a duplicate handle to the same object and pass this duplicated handle to the thread. That way, Thread A can use the original handle and Thread B can use the duplicated handle without worrying about each other.

The following code will create a duplicate handle dupHandle for hHandle. When both handles are closed, the object is destroyed.

 HANDLE hHandle = CreateFile(...); //used by Thread AHANDLE dupHandle; //used by thread BDulplicateHandle(GetCurrentProcess(),hHandle, GetCurrentProcess(),&dupHandle, 0, FALSE, DUPLICATE_SAME_ACCESS);


About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist