Index: /trunk/include/iprt/mangling.h
===================================================================
--- /trunk/include/iprt/mangling.h	(revision 71126)
+++ /trunk/include/iprt/mangling.h	(revision 71127)
@@ -2218,4 +2218,5 @@
 # define RTThreadGetName                                RT_MANGLER(RTThreadGetName)
 # define RTThreadGetNative                              RT_MANGLER(RTThreadGetNative)
+# define RTThreadGetNativeHandle                        RT_MANGLER(RTThreadGetNativeHandle)
 # define RTThreadGetNativeState                         RT_MANGLER(RTThreadGetNativeState)
 # define RTThreadGetReallySleeping                      RT_MANGLER(RTThreadGetReallySleeping)
Index: /trunk/include/iprt/thread.h
===================================================================
--- /trunk/include/iprt/thread.h	(revision 71126)
+++ /trunk/include/iprt/thread.h	(revision 71127)
@@ -326,4 +326,15 @@
  */
 RTDECL(RTNATIVETHREAD) RTThreadGetNative(RTTHREAD Thread);
+
+/**
+ * Gets the native thread handle for a IPRT thread.
+ *
+ * @returns The thread handle. INVALID_HANDLE_VALUE on failure.
+ * @param   hThread     The IPRT thread handle.
+ *
+ * @note    Windows only.
+ * @note    Only valid after parent returns from the thread creation call.
+ */
+RTDECL(uintptr_t) RTThreadGetNativeHandle(RTTHREAD hThread);
 
 /**
Index: /trunk/src/VBox/Runtime/r3/win/thread-win.cpp
===================================================================
--- /trunk/src/VBox/Runtime/r3/win/thread-win.cpp	(revision 71126)
+++ /trunk/src/VBox/Runtime/r3/win/thread-win.cpp	(revision 71127)
@@ -377,2 +377,25 @@
 }
 
+
+/**
+ * Gets the native thread handle for a IPRT thread.
+ *
+ * @returns The thread handle. INVALID_HANDLE_VALUE on failure.
+ * @param   hThread     The IPRT thread handle.
+ *
+ * @note    Windows only.
+ * @note    Only valid after parent returns from the thread creation call.
+ */
+RTDECL(uintptr_t) RTThreadGetNativeHandle(RTTHREAD hThread)
+{
+    PRTTHREADINT pThread = rtThreadGet(hThread);
+    if (pThread)
+    {
+        uintptr_t hHandle = pThread->hThread;
+        rtThreadRelease(pThread);
+        return hHandle;
+    }
+    return (uintptr_t)INVALID_HANDLE_VALUE;
+}
+RT_EXPORT_SYMBOL(RTThreadGetNativeHandle);
+
