? amd64 ? cvsflt ? i386 ? cvsfltlib/Release ? cvsflttest/Release ? inusemonitor/Release ? wix/cvsflt.cat ? wix/cvsflt.wixobj ? wix/cvsflt64.cat ? wix/ui.wixobj Index: cvsflt_release.inf =================================================================== RCS file: /scotty/cvsflt/cvsflt_release.inf,v retrieving revision 1.6 diff -c -r1.6 cvsflt_release.inf *** cvsflt_release.inf 18 Sep 2012 12:16:24 -0000 1.6 --- cvsflt_release.inf 19 Sep 2012 01:26:56 -0000 *************** *** 14,20 **** Class = "FSFilterSystem" ;This is determined by the work this filter driver does ClassGuid = {5d1b9aaa-01e2-46af-849f-272b3f324c46} ;This value is determined by the Class Provider = %MarchHare% ! DriverVer = 10/23/2004,1.0.0.1 ;;; ;;; The driver package type is used by DIFx to determine what steps are required for the installation of your specific type of driver. ;;; --- 14,20 ---- Class = "FSFilterSystem" ;This is determined by the work this filter driver does ClassGuid = {5d1b9aaa-01e2-46af-849f-272b3f324c46} ;This value is determined by the Class Provider = %MarchHare% ! DriverVer = 9/19/2012,1.0.0.2 ;;; ;;; The driver package type is used by DIFx to determine what steps are required for the installation of your specific type of driver. ;;; *************** *** 89,94 **** --- 89,96 ---- [CvsFlt.AddRegistry] HKLM,%CvsFltRegistry%,%CvsFltDebugFlags%,0x00010001 ,0 + ; http://support.microsoft.com/kb/817921 + HKLM,%CvsFltRegistryKB%,%CvsFltObCase%,0x00010001 ,0 [CvsFlt.AddRegistry.EventLog] HKR,,EventMessageFile,0x00020000,"%%SystemRoot%%\System32\drivers\cvsflt.sys" *************** *** 125,133 **** CvsFltServiceDesc = "CvsFlt Filter Driver" CvsFltServiceName = "CvsFlt" CvsFltRegistry = "system\currentcontrolset\services\CvsFlt" CvsFltDebugFlags = "DebugFlags" CvsFltEventReg = "system\currentcontrolset\services\EventLog\System\CvsFlt" CvsFltEventMsgFile = "EventMessageFile" CvsFltEventTypes = "TypesSupported" Disk1 = "CvsFlt Source Media" - --- 127,136 ---- CvsFltServiceDesc = "CvsFlt Filter Driver" CvsFltServiceName = "CvsFlt" CvsFltRegistry = "system\currentcontrolset\services\CvsFlt" + CvsFltRegistryKB = "System\CurrentControlSet\Control\Session Manager\Kernel" + CvsFltObCase = "ObCaseInsensitive" CvsFltDebugFlags = "DebugFlags" CvsFltEventReg = "system\currentcontrolset\services\EventLog\System\CvsFlt" CvsFltEventMsgFile = "EventMessageFile" CvsFltEventTypes = "TypesSupported" Disk1 = "CvsFlt Source Media" Index: cvsfltlib/cvsflt.cpp =================================================================== RCS file: /scotty/cvsflt/cvsfltlib/cvsflt.cpp,v retrieving revision 1.6 diff -c -r1.6 cvsflt.cpp *** cvsfltlib/cvsflt.cpp 2 Dec 2004 17:22:11 -0000 1.6 --- cvsfltlib/cvsflt.cpp 19 Sep 2012 05:25:04 -0000 *************** *** 104,110 **** return CvsAddPosixDirectoryW(AtoW(dir), temp); } ! BOOL CvsAddPosixDirectoryW(LPCWSTR dir, BOOL temp) { DWORD dwRet,BufLen; LPVOID Buf; --- 104,110 ---- return CvsAddPosixDirectoryW(AtoW(dir), temp); } ! BOOL CvsAddPosixDirectoryIntW(LPCWSTR dir, BOOL temp) { DWORD dwRet,BufLen; LPVOID Buf; *************** *** 125,130 **** --- 125,166 ---- } delete[] Buf; return bRet; + } + + BOOL CvsAddPosixDirectoryW(LPCWSTR dir, BOOL temp) + { + BOOL bRetShort = FALSE, bRetLong = FALSE; + // create buffers for the short and long version of this name + DWORD add_short_len=0, add_long_len=0, add_result; + add_result = GetShortPathNameW(dir,NULL,add_short_len); + if (add_result>0) + { + LPVOID add_short_str=NULL; + add_long_len=add_result*sizeof(WCHAR); + add_short_str = new char[add_long_len]; + if (add_short_str) + { + add_result = GetShortPathNameW(dir,(LPWSTR)add_short_str,add_short_len); + if (add_result>0) + bRetLong=CvsAddPosixDirectoryIntW((LPWSTR)add_short_str,temp); + delete[] add_short_str; + } + } + add_result = GetLongPathNameW(dir,NULL,add_long_len); + if (add_result>0) + { + LPVOID add_long_str=NULL; + add_long_len=add_result*sizeof(WCHAR); + add_long_str = new char [add_long_len]; + if (add_long_str) + { + add_result = GetLongPathNameW(dir,(LPWSTR)add_long_str,add_long_len); + if (add_result>0) + bRetShort=CvsAddPosixDirectoryIntW((LPWSTR)add_long_str,temp); + delete[] add_long_str; + } + } + return (bRetLong || bRetShort); } BOOL CvsRemovePosixDirectoryA(LPCSTR dir, BOOL temp) Index: cvsflttest/cvsflttest.vcproj =================================================================== RCS file: /scotty/cvsflt/cvsflttest/cvsflttest.vcproj,v retrieving revision 1.5 diff -c -r1.5 cvsflttest.vcproj *** cvsflttest/cvsflttest.vcproj 13 Sep 2012 11:49:22 -0000 1.5 --- cvsflttest/cvsflttest.vcproj 19 Sep 2012 06:12:14 -0000 *************** *** 90,96 ****