Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mpc-hc/mpc-hc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkinddragon <kinddragon@users.sourceforge.net>2010-04-27 06:03:56 +0400
committerkinddragon <kinddragon@users.sourceforge.net>2010-04-27 06:03:56 +0400
commit5424a5b168d397f58e32b2f1b95889de8c823784 (patch)
tree4ef55d8888832eb2d13e6081f626e8b17669629d /src/DSUtil
parent033e7f77ad41737dbb2ef08066a04af5ad05bc92 (diff)
Ticket #12 ([ALL] crash/hang after standby, hibernate, UAC or CTRL+ALT+DEL) partially fixed
Added some threads names git-svn-id: https://mpc-hc.svn.sourceforge.net/svnroot/mpc-hc/trunk@1813 10f7b99b-c216-0410-bff0-8a66a9350fd8
Diffstat (limited to 'src/DSUtil')
-rw-r--r--src/DSUtil/DSUtil.cpp28
-rw-r--r--src/DSUtil/DSUtil.h1
2 files changed, 29 insertions, 0 deletions
diff --git a/src/DSUtil/DSUtil.cpp b/src/DSUtil/DSUtil.cpp
index d43328924..b85a44638 100644
--- a/src/DSUtil/DSUtil.cpp
+++ b/src/DSUtil/DSUtil.cpp
@@ -2535,3 +2535,31 @@ const wchar_t *StreamTypeToName(PES_STREAM_TYPE _Type)
}
return NULL;
}
+
+//
+// Usage: SetThreadName (-1, "MainThread");
+//
+typedef struct tagTHREADNAME_INFO
+{
+ DWORD dwType; // must be 0x1000
+ LPCSTR szName; // pointer to name (in user addr space)
+ DWORD dwThreadID; // thread ID (-1=caller thread)
+ DWORD dwFlags; // reserved for future use, must be zero
+} THREADNAME_INFO;
+
+void SetThreadName( DWORD dwThreadID, LPCSTR szThreadName)
+{
+ THREADNAME_INFO info;
+ info.dwType = 0x1000;
+ info.szName = szThreadName;
+ info.dwThreadID = dwThreadID;
+ info.dwFlags = 0;
+
+ __try
+ {
+ RaiseException( 0x406D1388, 0, sizeof(info)/sizeof(DWORD), (DWORD*)&info );
+ }
+ __except(EXCEPTION_CONTINUE_EXECUTION)
+ {
+ }
+} \ No newline at end of file
diff --git a/src/DSUtil/DSUtil.h b/src/DSUtil/DSUtil.h
index e30eb3f6e..a24b8ceef 100644
--- a/src/DSUtil/DSUtil.h
+++ b/src/DSUtil/DSUtil.h
@@ -116,6 +116,7 @@ extern DWORD YCrCbToRGB_Rec601(BYTE A, BYTE Y, BYTE Cr, BYTE Cb);
extern DWORD YCrCbToRGB_Rec709(BYTE A, BYTE Y, BYTE Cr, BYTE Cb);
extern void TraceFilterInfo(IBaseFilter* pBF);
extern void TracePinInfo(IPin* pPin);
+extern void SetThreadName( DWORD dwThreadID, LPCSTR szThreadName);
class CPinInfo : public PIN_INFO
{