出现Windows Explorer has encountered a problem and needs to close.的错误

naixian1983 2008-05-13 10:53:48
我用detours 来hook createfile(),但出现Windows Explorer has encountered a problem and needs to close. We are sorry for the inconvenience.的错误



DETOUR_TRAMPOLINE(HANDLE WINAPI MyCreateFileW(LPCWSTR lpFileName,DWORD dwDesiredAccess,DWORD dwShareMode,LPSECURITY_ATTRIBUTES lpSecurityAttributes,DWORD dwCreationDisposition,DWORD dwFlagsAndAttributes,HANDLE hTemplateFile), CreateFileW);
HANDLE WINAPI NewCreateFileW(LPCWSTR lpFileName,DWORD dwDesiredAccess,DWORD dwShareMode,LPSECURITY_ATTRIBUTES lpSecurityAttributes,DWORD dwCreationDisposition,DWORD dwFlagsAndAttributes,HANDLE hTemplateFile)

{

TCHAR szBuffer[1024];


UINT fixed;

CString Drive_Letter;

CString Drive="G:";

fixed=GetDriveType(Drive);

if (fixed==DRIVE_REMOVABLE)
{



Drive_Letter=Drive.Mid(0,1);


wsprintf(szBuffer,TEXT("%s"),Drive_Letter);

if(wcsncmp(lpFileName, (LPCWSTR)szBuffer,1) ==0 )
{
SetLastError(ERROR_ACCESS_DENIED);



return INVALID_HANDLE_VALUE;


}


}





return MyCreateFileW(lpFileName,dwDesiredAccess,dwShareMode,lpSecurityAttributes,dwCreationDisposition,dwFlagsAndAttributes,hTemplateFile);

}





请帮帮忙啊,那里错呢?谢了
...全文
726 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
cnzdgs 2008-05-13
  • 打赏
  • 举报
回复
可能哪里都没错,建议你先针对某一个固定的文件来处理,验证程序Hook及相关处理是否正确。
Hook CreateFile可以实现不让其它程序打开文件,但不能实现让其它程序认为没有文件,如果要禁止访问一个盘,需要Hook与此相关的各个API,或许Hook NtCreateFile能达到你的目的。

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧