16,471
社区成员
发帖
与我相关
我的任务
分享
DETOUR_TRAMPOLINE(HANDLE WINAPI MyCreateFileW(LPCSTR lpFileName,DWORD dwDesiredAccess,DWORD dwShareMode,LPSECURITY_ATTRIBUTES lpSecurityAttributes,DWORD dwCreationDisposition,DWORD dwFlagsAndAttributes,HANDLE hTemplateFile), CreateFileW);
HANDLE WINAPI NewCreateFileW(LPCSTR lpFileName,DWORD dwDesiredAccess,DWORD dwShareMode,LPSECURITY_ATTRIBUTES lpSecurityAttributes,DWORD dwCreationDisposition,DWORD dwFlagsAndAttributes,HANDLE hTemplateFile)
{
return 0;
HANDLE Result=MyCreateFileW(lpFileName,dwDesiredAccess,dwShareMode,lpSecurityAttributes,dwCreationDisposition,dwFlagsAndAttributes,hTemplateFile);
return Result;
}
DETOUR_TRAMPOLINE(HANDLE WINAPI MyCreateFileW(LPCSTR lpFileName,DWORD dwDesiredAccess,DWORD dwShareMode,LPSECURITY_ATTRIBUTES lpSecurityAttributes,DWORD dwCreationDisposition,DWORD dwFlagsAndAttributes,HANDLE hTemplateFile), CreateFileW);
HANDLE WINAPI NewCreateFileW(LPCSTR lpFileName,DWORD dwDesiredAccess,DWORD dwShareMode,LPSECURITY_ATTRIBUTES lpSecurityAttributes,DWORD dwCreationDisposition,DWORD dwFlagsAndAttributes,HANDLE hTemplateFile)
if(GetDriveType(lpFileName)==DRIVE_REMOVABLE)
{
return 0;
}
HANDLE Result=MyCreateFileW(lpFileName,dwDesiredAccess,dwShareMode,lpSecurityAttributes,dwCreationDisposition,dwFlagsAndAttributes,hTemplateFile);
return Result;
HANDLE WINAPI NewCreateFileA(LPCSTR lpFileName,DWORD dwDesiredAccess,DWORD dwShareMode,LPSECURITY_ATTRIBUTES lpSecurityAttributes,DWORD dwCreationDisposition,DWORD dwFlagsAndAttributes,HANDLE hTemplateFile)
{
UINT uDriveType=::GetDriveType(lpFileName);
switch (uDriveType)
{
case DRIVE_REMOVABLE:
{
OutputDebugString("DRIVE_REMOVABLE");
return 0;
break;
}
case DRIVE_FIXED:
{
OutputDebugString("DRIVE_FIXED");
break;
}
case DRIVE_UNKNOWN:
{
OutputDebugString("DRIVE_UNKNOWN");
return 0;
break;
}
case DRIVE_CDROM:
{
OutputDebugString("DRIVE_CDROM");
return 0;
break;
}
}
HANDLE result=MyCreateFileA(lpFileName,dwDesiredAccess,dwShareMode,lpSecurityAttributes,dwCreationDisposition,dwFlagsAndAttributes,hTemplateFile);
return result;
}
UINT uDriveType=::GetDriveType(lpFileName);
switch (uDriveType)
{
case DRIVE_REMOVABLE:
{
OutputDebugString("DRIVE_REMOVABLE");
return 0;
break;
}
case DRIVE_FIXED:
{
OutputDebugString("DRIVE_FIXED");
break;
}
case DRIVE_UNKNOWN:
{
OutputDebugString("DRIVE_UNKNOWN");
return 0;
break;
}
case DRIVE_CDROM:
{
OutputDebugString("DRIVE_CDROM");
return 0;
break;
}
}