| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 185 人关注过本帖
标题:求助,某句柄导致线程崩溃!
只看楼主 加入收藏
qq835078903
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2018-8-7
结帖率:100%
  已结贴   问题点数:20  回复次数:5   
求助,某句柄导致线程崩溃!
最近做一个用NtQueryInformationFile获取句柄对应文件名的小程序,由于要获取namedpipe中的信息,要创建子线程设置等待超时。谁知每到同一个namedpipe句柄,线程就崩溃了,信息如下:

线程 'Win32 线程' (0x9b4) 已退出,返回值为 -1073741510 (0xc000013a)。
线程 'Win32 线程' (0x2640) 已退出,返回值为 -1073741510 (0xc000013a)。
线程 'Win32 线程' (0x2088) 已退出,返回值为 -1073741510 (0xc000013a)。
程序“[9648] cheumn.exe: 本机”已退出,返回值为 -1073741510 (0xc000013a)。
通过process explorer,这个句柄属于Atiesrxx.exe的DEVICE\NAMEDPIPE\EXTEVENTPIPE_SERVICE
DWORD WINAPI
  GetFileNameThread(PVOID lpParameter)
{
    PNM_INFO        NmInfo = lpParameter;
    IO_STATUS_BLOCK IoStatus;

    NtQueryInformationFile(NmInfo->hFile, &IoStatus, &NmInfo->Info,
                          sizeof(NM_INFO) - sizeof(HANDLE), FileNameInformation);

    return 0;
}

EXTERN_C void GetFileName(HANDLE hFile, PCHAR TheName)
{
    HANDLE   hThread;
    PNM_INFO Info = HeapAlloc(hHeap, 0, sizeof(NM_INFO));

    Info->hFile = hFile;

    hThread = CreateThread(NULL, 0, GetFileNameThread, Info, 0, NULL);

    if (MsgWaitForMultipleObjects(1, &hThread,
        FALSE, INFINITE, QS_ALLINPUT) == WAIT_OBJECT_0) //问题出在这里
    {
        TerminateThread(hThread, 0);
    }
    CloseHandle(hThread);



    memset(TheName, 0, MAX_PATH);

    WideCharToMultiByte(CP_ACP, 0, Info->Info.FileName, Info->Info.FileNameLength >> 1, TheName, MAX_PATH, NULL, NULL);

    HeapFree(hHeap, 0, Info);
}
请各位大神解答!
2018-08-07 09:33
qq835078903
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2018-8-7
  得分:0 
自顶,不要沉
2018-08-07 15:06
qq835078903
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2018-8-7
  得分:0 
别沉啊
2018-08-07 18:02
qq835078903
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2018-8-7
  得分:0 
ziding
7 天前 09:44
烟雨晨曦
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:6
帖 子:140
专家分:555
注 册:2017-3-5
  得分:10 
就一个函数百度一下用法不就知道么
7 天前 15:15
zhoujie13
Rank: 2
等 级:论坛游民
帖 子:18
专家分:13
注 册:2018-7-8
  得分:10 
帮你顶
6 天前 08:43







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.042322 second(s), 8 queries.
Copyright©2004-2018, BCCN.NET, All Rights Reserved