想拦截SHFileOperationW 函数。对不符合路径的文件操作进行拦截。DETOUR_TRAMPOLINE 函数使用错误?????入口参数和出口参数完全一样啊?为什么????
整个工程参照的一篇论文 苏雪丽的《基于Detours的文件操作监控方案》 
#include "stdafx.h"
#include "detours.h"
#include "Shellapi.h"
#pragma comment(lib,"detoured.lib")
#pragma comment(lib,"detours.lib")#define MAX_SAFE_FILE_NUM 10000
#ifdef _MANAGED
#pragma managed(push, off)
#endiftypedef struct _SHAREDATA //定义内存映射文件结构体
{
 int m_FilePathListNum;
 DWORD m_SelfProcessId;
 char m_FilePathList[MAX_SAFE_FILE_NUM][MAX_PATH];
}SHAREDATA;int (WINAPI * SysSHFileOperationW)(LPSHFILEOPSTRUCT lpFileOp)=SHFileOperationW;//未完成int WINAPI SHFileOperationW_Mine(LPSHFILEOPSTRUCTW lpFileOp)
{
char FilePath[MAX_PATH]={0};
if(lpFileOp->wFunc ==FO_MOVE||lpFileOp->wFunc==FO_DELETE||lpFileOp->wFunc==FO_COPY||lpFileOp->wFunc==FO_RENAME)
{
  
}}
//LPSHFILEOPSTRUCTWvoid Intercept()
{
 PVOID TargetPtrW_SH;
 PVOID DetourPtrW_SH;
 DetourTransactionBegin();
 DetourUpdateThread(GetCurrentThread());
 DETOUR_TRAMPOLINE( int TrampolineW_SH(__in LPSHFILEOPSTRUCTW lpFileOp),SHFileOperationW);//!!!!!!!!!
 DetourAttachEx(&(PVOID&)SHFileOperationW,  //原目标函数
SHFileOperationW_Mine,  //detours函数
&TrampolineW_SH,  //trampoline函数地址
& TargetPtrW_SH,
& DetourPtrW_SH);
 DetourTransactionCommit();
}BOOL APIENTRY DllMain ( HMODULE hModule,    //未完成
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
  )
{    return TRUE;
}#ifdef _MANAGED
#pragma managed(pop)
#endif编译时提示的错误。
1>------ 已启动生成: 项目: FileGuid, 配置: Debug Win32 ------
1>正在编译...
1>FileGuid.cpp
1>e:\documents and settings\baobao\my documents\visual studio 2005\projects\fileguid\fileguid\fileguid.cpp(47) : error C2144: 语法错误 : “int”的前面应有“)”
1>e:\documents and settings\baobao\my documents\visual studio 2005\projects\fileguid\fileguid\fileguid.cpp(47) : error C2514: “_DETOUR_TRAMPOLINE”: 类没有构造函数
1>        e:\program files\microsoft visual studio 8\vc\include\detours.h(79) : 参见“_DETOUR_TRAMPOLINE”的声明
1>e:\documents and settings\baobao\my documents\visual studio 2005\projects\fileguid\fileguid\fileguid.cpp(47) : error C2059: 语法错误 : “)”
1>e:\documents and settings\baobao\my documents\visual studio 2005\projects\fileguid\fileguid\fileguid.cpp(50) : error C2065: “TrampolineW_SH”: 未声明的标识符
1>生成日志保存在“file://e:\Documents and Settings\baobao\My Documents\Visual Studio 2005\Projects\FileGuid\FileGuid\Debug\BuildLog.htm”
1>FileGuid - 4 个错误,0 个警告
========== 生成: 0 已成功, 1 已失败, 0 最新, 0 已跳过 ==========