Index: cvsflt/MSG00001.bin =================================================================== RCS file: /scotty/cvsflt/cvsflt/MSG00001.bin,v retrieving revision 1.2 diff -c -r1.2 MSG00001.bin Binary files /tmp/cvsWywIrf and MSG00001.bin differ Index: cvsflt/cvsflt.c =================================================================== RCS file: /scotty/cvsflt/cvsflt/cvsflt.c,v retrieving revision 1.7 diff -c -r1.7 cvsflt.c *** cvsflt/cvsflt.c 14 Sep 2012 08:42:25 -0000 1.7 --- cvsflt/cvsflt.c 18 Sep 2012 11:47:34 -0000 *************** *** 58,63 **** --- 58,67 ---- #define NTSTRSAFE_LIB #include + #ifndef STRSAFE_MAX_CCH + #define STRSAFE_MAX_CCH NTSTRSAFE_MAX_CCH + #endif + // // Enable these warnings in the code. // *************** *** 503,509 **** #define CVSDEBUG_GET_CREATE_NAMES 0x00000004 //get name (don't display) during create #define CVSDEBUG_DO_CREATE_COMPLETION 0x00000008 //do create completion routine, don't get names #define CVSDEBUG_ATTACH_TO_FSRECOGNIZER 0x00000010 //do attach to FSRecognizer device objects ! #define CVSDEBUG_TRACE_IOCTL 0x00000020 //trace ioctl actions ULONG SfDebug = 0; --- 507,516 ---- #define CVSDEBUG_GET_CREATE_NAMES 0x00000004 //get name (don't display) during create #define CVSDEBUG_DO_CREATE_COMPLETION 0x00000008 //do create completion routine, don't get names #define CVSDEBUG_ATTACH_TO_FSRECOGNIZER 0x00000010 //do attach to FSRecognizer device objects ! #define CVSDEBUG_TRACE_IOCTL 0x00000020 //trace ioctl actions ! #define CVSDEBUG_TRACE_EVENTLOG 0x00000040 //trace event actions ! #define CVSDEBUG_TRACE_ALLPOSIX 0x00000080 //trace all posix filenames ! #define CVSDEBUG_TRACE_SOMEPOSIX 0x00000100 //trace some posix filenames ULONG SfDebug = 0; *************** *** 6640,6645 **** --- 6647,6653 ---- try { RtlCopyMemory(OutputBuffer, &ver, sizeof(struct _CVSFLT_GETVERSION_OUT)); + CVS_LOG_PRINT(CVSDEBUG_TRACE_SOMEPOSIX,("CvsFlt!CVSFLT_GetVersion: Returns %x\n",(int)ver.Version)); } except (EXCEPTION_EXECUTE_HANDLER) { *************** *** 6919,6924 **** --- 6927,6933 ---- } CVS_LOG_PRINT(CVSDEBUG_TRACE_IOCTL,("CvsFlt!CvsAddPosixDirectory: Add %S\n",Dir)); + CVS_LOG_PRINT(CVSDEBUG_TRACE_SOMEPOSIX,("CvsFlt!CvsAddPosixDirectory: Add %S\n",Dir)); RtlZeroMemory(DirBuf,Len + sizeof(CVSFLT_DIRECTORY)); RtlStringCbCopyW(DirBuf->wsz,Len,Dir); *************** *** 6952,6957 **** --- 6961,6967 ---- UNICODE_STRING str1; CVS_LOG_PRINT(CVSDEBUG_TRACE_IOCTL,("CvsFlt!CvsRemovePosixDirectory: Remove %S\n",Dir?Dir:(Temporary?L"all temporary":L"all global directories"))); + CVS_LOG_PRINT(CVSDEBUG_TRACE_SOMEPOSIX,("CvsFlt!CvsRemovePosixDirectory: Remove %S\n",Dir?Dir:(Temporary?L"all temporary":L"all global directories"))); KeAcquireSpinLock( &gCvsDirectoryListLock, &oldIrql ); DirBuf = gCvsDirectoryListRoot; *************** *** 7111,7120 **** --- 7121,7132 ---- result = RtlStringCbCopyNW(Dir,DirLen,DirBuf->wsz,DirBuf->Directory.Length); *OutLen=DirBuf->Directory.Length; CVS_LOG_PRINT(CVSDEBUG_TRACE_IOCTL,("CvsFlt!CvsGetPosixDirectory: Returns %S\n",Dir)); + CVS_LOG_PRINT(CVSDEBUG_TRACE_SOMEPOSIX,("CvsFlt!CvsGetPosixDirectory: Returns %S\n",Dir)); } else { CVS_LOG_PRINT(CVSDEBUG_TRACE_IOCTL,("CvsFlt!CvsGetPosixDirectory: Fails\n")); + CVS_LOG_PRINT(CVSDEBUG_TRACE_SOMEPOSIX,("CvsFlt!CvsGetPosixDirectory: Fails\n")); result = STATUS_NOT_FOUND; } *************** *** 7194,7199 **** --- 7206,7212 ---- POBJECT_NAME_INFORMATION Info = (POBJECT_NAME_INFORMATION)Buf; CVS_LOG_PRINT(CVSDEBUG_TRACE_IOCTL,("CvsFlt!CvsGetKernelName: %S\n",NameIn)); + CVS_LOG_PRINT(CVSDEBUG_TRACE_SOMEPOSIX,("CvsFlt!CvsGetKernelName: %S\n",NameIn)); RtlInitUnicodeString(&ni,NameIn); *************** *** 7221,7230 **** return status; if(Info->Name.Length>NameOutSize) Info->Name.Length=(USHORT)NameOutSize; ! memcpy(NameOut,Info->Name.Buffer,Info->Name.Length); *NameOutLen=Info->Name.Length; CVS_LOG_PRINT(CVSDEBUG_TRACE_IOCTL,("CvsFlt!CvsGetKernelName: Returns %S\n",NameOut)); return status; } except (EXCEPTION_EXECUTE_HANDLER) { --- 7234,7246 ---- return status; if(Info->Name.Length>NameOutSize) Info->Name.Length=(USHORT)NameOutSize; ! RtlZeroMemory( NameOut, NameOutSize ); ! RtlStringCbCopyUnicodeString( NameOut, NameOutSize, &Info->Name ); ! //memcpy(NameOut,Info->Name.Buffer,Info->Name.Length); *NameOutLen=Info->Name.Length; CVS_LOG_PRINT(CVSDEBUG_TRACE_IOCTL,("CvsFlt!CvsGetKernelName: Returns %S\n",NameOut)); + CVS_LOG_PRINT(CVSDEBUG_TRACE_SOMEPOSIX,("CvsFlt!CvsGetKernelName: Returns %wZ (%S)\n",Info->Name,NameOut)); return status; } except (EXCEPTION_EXECUTE_HANDLER) { *************** *** 7313,7319 **** { CVSFLT_DIRECTORY *DirBuf; KIRQL oldIrql; ! BOOLEAN bRet = FALSE; PIO_ERROR_LOG_PACKET errlog_pkt; PWSTR myname = L"expired"; PWSTR myrun = L"running"; --- 7329,7335 ---- { CVSFLT_DIRECTORY *DirBuf; KIRQL oldIrql; ! BOOLEAN bRet = FALSE, bSimilar = FALSE; PIO_ERROR_LOG_PACKET errlog_pkt; PWSTR myname = L"expired"; PWSTR myrun = L"running"; *************** *** 7335,7353 **** if (gSEventMsgRun==0) { gSEventMsgRun=1; RtlStringCbLengthW(myrun,MAX_PATH*sizeof(WCHAR),&myrunlen); /* NTSTRSAFE_MAX_CCH cannot be found, so use MAX_PATH instead */ packetlen = myrunlen + sizeof(WCHAR) + sizeof(IO_ERROR_LOG_PACKET) + sizeof(ULONG); // sizeof(ULONG)=4? ! if (packetlen > ERROR_LOG_MAXIMUM_SIZE) ! return FALSE; errlog_pkt = (PIO_ERROR_LOG_PACKET) IoAllocateErrorLogEntry(DeviceObject, (UCHAR) packetlen); ! if (!errlog_pkt) ! return FALSE; ! RtlZeroMemory( errlog_pkt, sizeof( IO_ERROR_LOG_PACKET ) ); // as defined in ntiologc.h (C:\WinDDK\5112\inc\api\ntiologc.h) // or maybe defined in cvsflt_msg.h --- 7351,7372 ---- if (gSEventMsgRun==0) { + CVS_LOG_PRINT(CVSDEBUG_TRACE_EVENTLOG,("CvsFlt!CvsIsPosixFileName: driver has started running ok\n")); gSEventMsgRun=1; RtlStringCbLengthW(myrun,MAX_PATH*sizeof(WCHAR),&myrunlen); /* NTSTRSAFE_MAX_CCH cannot be found, so use MAX_PATH instead */ packetlen = myrunlen + sizeof(WCHAR) + sizeof(IO_ERROR_LOG_PACKET) + sizeof(ULONG); // sizeof(ULONG)=4? ! if (packetlen <= ERROR_LOG_MAXIMUM_SIZE) ! { errlog_pkt = (PIO_ERROR_LOG_PACKET) IoAllocateErrorLogEntry(DeviceObject, (UCHAR) packetlen); + CVS_LOG_PRINT(CVSDEBUG_TRACE_EVENTLOG,("CvsFlt!CvsIsPosixFileName: allocated memory for event log message.\n")); ! if (errlog_pkt) ! { ! RtlZeroMemory( errlog_pkt, packetlen ); ! CVS_LOG_PRINT(CVSDEBUG_TRACE_EVENTLOG,("CvsFlt!CvsIsPosixFileName: memory for event log message zeroed.\n")); // as defined in ntiologc.h (C:\WinDDK\5112\inc\api\ntiologc.h) // or maybe defined in cvsflt_msg.h *************** *** 7363,7368 **** --- 7382,7388 ---- errlog_pkt->StringOffset = sizeof(IO_ERROR_LOG_PACKET) + errlog_pkt->DumpDataSize; errlog_pkt->NumberOfStrings = 1; errlog_pkt->RetryCount = 0; + CVS_LOG_PRINT(CVSDEBUG_TRACE_EVENTLOG,("CvsFlt!CvsIsPosixFileName: error log packet initialized ok.\n")); // optional stuff // errlog_pkt->MajorFunctionCode *************** *** 7374,7383 **** // errlog_pkt->DeviceOffset RtlStringCbCopyW((PWSTR) ((PUCHAR) errlog_pkt + errlog_pkt->StringOffset), myrunlen + sizeof(WCHAR), myrun); IoWriteErrorLogEntry(errlog_pkt); ! IoFreeErrorLogEntry(errlog_pkt); ! CVS_LOG_PRINT(CVSDEBUG_TRACE_IOCTL,("CvsFlt!CvsIsPosixFileName: driver has started running ok\n")); } #ifdef CVSTRIAL_MAX --- 7394,7411 ---- // errlog_pkt->DeviceOffset RtlStringCbCopyW((PWSTR) ((PUCHAR) errlog_pkt + errlog_pkt->StringOffset), myrunlen + sizeof(WCHAR), myrun); + CVS_LOG_PRINT(CVSDEBUG_TRACE_EVENTLOG,("CvsFlt!CvsIsPosixFileName: error log string initialized ok.\n")); IoWriteErrorLogEntry(errlog_pkt); ! CVS_LOG_PRINT(CVSDEBUG_TRACE_EVENTLOG,("CvsFlt!CvsIsPosixFileName: driver has written a running message to event log\n")); ! // IoFreeErrorLogEntry(errlog_pkt); // only use this if you do NOT call IoWriteErrorLogEntry ! CVS_LOG_PRINT(CVSDEBUG_TRACE_EVENTLOG,("CvsFlt!CvsIsPosixFileName: driver has free'd the event log buffer\n")); ! } ! else ! CVS_LOG_PRINT(CVSDEBUG_TRACE_EVENTLOG,("CvsFlt!CvsIsPosixFileName: driver cannot write event log 'running' because out of memory...\n")); ! } ! else ! CVS_LOG_PRINT(CVSDEBUG_TRACE_EVENTLOG,("CvsFlt!CvsIsPosixFileName: driver cannot write event log because it's too long...\n")); } #ifdef CVSTRIAL_MAX *************** *** 7392,7408 **** /* 7858800 seconds is 3 months - ie: if the current time is > 3 months since compile, then barf */ if ((gSTrialExpired==0) && (CvsElapsedSeconds>(CVSTRIAL_MAX+7858800))) { gSTrialExpired=1; RtlStringCbLengthW(myname,MAX_PATH*sizeof(WCHAR),&mynamelen); /* NTSTRSAFE_MAX_CCH cannot be found, so use MAX_PATH instead */ packetlen = mynamelen + sizeof(WCHAR) + sizeof(IO_ERROR_LOG_PACKET) + sizeof(ULONG); // sizeof(ULONG)=4? ! if (packetlen > ERROR_LOG_MAXIMUM_SIZE) ! return FALSE; errlog_pkt = (PIO_ERROR_LOG_PACKET) IoAllocateErrorLogEntry(DeviceObject, (UCHAR) packetlen); ! if (!errlog_pkt) ! return FALSE; RtlZeroMemory( errlog_pkt, sizeof( IO_ERROR_LOG_PACKET ) ); --- 7420,7437 ---- /* 7858800 seconds is 3 months - ie: if the current time is > 3 months since compile, then barf */ if ((gSTrialExpired==0) && (CvsElapsedSeconds>(CVSTRIAL_MAX+7858800))) { + CVS_LOG_PRINT(CVSDEBUG_TRACE_EVENTLOG,("CvsFlt!CvsIsPosixFileName: Trial License has expired\n")); gSTrialExpired=1; RtlStringCbLengthW(myname,MAX_PATH*sizeof(WCHAR),&mynamelen); /* NTSTRSAFE_MAX_CCH cannot be found, so use MAX_PATH instead */ packetlen = mynamelen + sizeof(WCHAR) + sizeof(IO_ERROR_LOG_PACKET) + sizeof(ULONG); // sizeof(ULONG)=4? ! if (packetlen <= ERROR_LOG_MAXIMUM_SIZE) ! { errlog_pkt = (PIO_ERROR_LOG_PACKET) IoAllocateErrorLogEntry(DeviceObject, (UCHAR) packetlen); ! if (errlog_pkt) ! { RtlZeroMemory( errlog_pkt, sizeof( IO_ERROR_LOG_PACKET ) ); *************** *** 7433,7440 **** RtlStringCbCopyW((PWSTR) ((PUCHAR) errlog_pkt + errlog_pkt->StringOffset), mynamelen + sizeof(WCHAR), myname); IoWriteErrorLogEntry(errlog_pkt); ! IoFreeErrorLogEntry(errlog_pkt); ! CVS_LOG_PRINT(CVSDEBUG_TRACE_IOCTL,("CvsFlt!CvsIsPosixFileName: Trial License has expired\n")); } #endif --- 7462,7475 ---- RtlStringCbCopyW((PWSTR) ((PUCHAR) errlog_pkt + errlog_pkt->StringOffset), mynamelen + sizeof(WCHAR), myname); IoWriteErrorLogEntry(errlog_pkt); ! // IoFreeErrorLogEntry(errlog_pkt); // only use this if you do NOT call IoWriteErrorLogEntry ! CVS_LOG_PRINT(CVSDEBUG_TRACE_EVENTLOG,("CvsFlt!CvsIsPosixFileName: Written event log: Trial License has expired\n")); ! } ! else ! CVS_LOG_PRINT(CVSDEBUG_TRACE_EVENTLOG,("CvsFlt!CvsIsPosixFileName: driver cannot write event log 'expired' because out of memory...\n")); ! } ! else ! CVS_LOG_PRINT(CVSDEBUG_TRACE_EVENTLOG,("CvsFlt!CvsIsPosixFileName: driver cannot write event log 'expired' because it's too long...\n")); } #endif *************** *** 7450,7465 **** /* There are no strncmp equivalents at kernel level - ntstrsafe doesn't define any comparison functions, unfortunately */ /* Make a copy, truncate it and only compare if the result is equal */ ! UNICODE_STRING str1 = *FileName; if(str1.Length>DirBuf->Directory.Length) str1.Length=DirBuf->Directory.Length; ! if(str1.Length==DirBuf->Directory.Length && !RtlCompareUnicodeString(&str1,&DirBuf->Directory,TRUE)) { bRet = TRUE; break; } else DirBuf = DirBuf->Next; } KeReleaseSpinLock( &gCvsDirectoryListLock, oldIrql ); } except (EXCEPTION_EXECUTE_HANDLER) { --- 7485,7518 ---- /* There are no strncmp equivalents at kernel level - ntstrsafe doesn't define any comparison functions, unfortunately */ /* Make a copy, truncate it and only compare if the result is equal */ ! UNICODE_STRING str1; ! str1 = *FileName; if(str1.Length>DirBuf->Directory.Length) str1.Length=DirBuf->Directory.Length; ! if(str1.Length+1==DirBuf->Directory.Length) ! bSimilar = TRUE; ! if(str1.Length==DirBuf->Directory.Length+1) ! bSimilar = TRUE; ! if(str1.Length==DirBuf->Directory.Length) ! bSimilar = TRUE; ! if(str1.Length==DirBuf->Directory.Length) { + if(!RtlCompareUnicodeString(&str1,&DirBuf->Directory,TRUE)) + { bRet = TRUE; + if (bRet || bSimilar) + CVS_LOG_PRINT(CVSDEBUG_TRACE_SOMEPOSIX,("CvsFlt!CvsIsPosixFileName: %s: %wZ == %wZ\n", bSimilar?"similar":"identical",FileName,&DirBuf->Directory)); break; + } + else + DirBuf = DirBuf->Next; } else DirBuf = DirBuf->Next; + + //if(bSimilar && 0) + // CVS_LOG_PRINT(CVSDEBUG_TRACE_SOMEPOSIX,("CvsFlt!CvsIsPosixFileName: %s: %wZ == %wZ\n", bSimilar?"similar":"identical",FileName,&DirBuf->Directory)); + bSimilar = FALSE; } KeReleaseSpinLock( &gCvsDirectoryListLock, oldIrql ); } except (EXCEPTION_EXECUTE_HANDLER) { *************** *** 7467,7473 **** bRet = FALSE; } ! CVS_LOG_PRINT(CVSDEBUG_TRACE_IOCTL,("CvsFlt!CvsIsPosixFileName: (%s) %wZ\n", bRet?"TRUE":"FALSE",FileName)); return bRet; } --- 7520,7526 ---- bRet = FALSE; } ! CVS_LOG_PRINT(CVSDEBUG_TRACE_ALLPOSIX,("CvsFlt!CvsIsPosixFileName: (%s) %wZ\n", bRet?"TRUE":"FALSE",FileName)); return bRet; } Index: cvsflt/cvsflt_msg.h =================================================================== RCS file: /scotty/cvsflt/cvsflt/cvsflt_msg.h,v retrieving revision 1.3 diff -c -r1.3 cvsflt_msg.h *** cvsflt/cvsflt_msg.h 14 Sep 2012 08:42:25 -0000 1.3 --- cvsflt/cvsflt_msg.h 18 Sep 2012 05:12:24 -0000 *************** *** 1,4 **** ! // CVS_VERSION_ID("@(#)$Id: cvsflt_msg.mc,v 1.1 2012/09/12 12:53:50 abarrett Exp $") /* --------------------------------------------------------------------------- Copyright (c) March Hare Software Limited, England. All rights reserved. --- 1,4 ---- ! // CVS_VERSION_ID("@(#)$Id: cvsflt_msg.mc,v 1.2 2012/09/14 08:42:25 abarrett Exp $") /* --------------------------------------------------------------------------- Copyright (c) March Hare Software Limited, England. All rights reserved. *************** *** 56,62 **** // // MessageText: // ! // %1 trial license is %2. // #define CVSFLT_MSG_STRING ((NTSTATUS)0x40040001L) --- 56,62 ---- // // MessageText: // ! // cvsflt trial license is %2. // #define CVSFLT_MSG_STRING ((NTSTATUS)0x40040001L) *************** *** 65,71 **** // // MessageText: // ! // %1 is %2 OK. // #define CVSFLT_RUNNING ((NTSTATUS)0x40040002L) --- 65,71 ---- // // MessageText: // ! // cvsflt is %2 OK. // #define CVSFLT_RUNNING ((NTSTATUS)0x40040002L) Index: cvsflt/cvsflt_msg.mc =================================================================== RCS file: /scotty/cvsflt/cvsflt/cvsflt_msg.mc,v retrieving revision 1.2 diff -c -r1.2 cvsflt_msg.mc *** cvsflt/cvsflt_msg.mc 14 Sep 2012 08:42:25 -0000 1.2 --- cvsflt/cvsflt_msg.mc 18 Sep 2012 05:08:44 -0000 *************** *** 29,35 **** Severity=Informational Facility=IO_ERROR Language=English ! %1 trial license is %2. . MessageId=0x2 --- 29,35 ---- Severity=Informational Facility=IO_ERROR Language=English ! cvsflt trial license is %2. . MessageId=0x2 *************** *** 37,42 **** Severity=Informational Facility=IO_ERROR Language=English ! %1 is %2 OK. . --- 37,42 ---- Severity=Informational Facility=IO_ERROR Language=English ! cvsflt is %2 OK. . Index: cvsflt/cvsflt_pub.h =================================================================== RCS file: /scotty/cvsflt/cvsflt/cvsflt_pub.h,v retrieving revision 1.3 diff -c -r1.3 cvsflt_pub.h *** cvsflt/cvsflt_pub.h 10 Nov 2004 14:45:50 -0000 1.3 --- cvsflt/cvsflt_pub.h 18 Sep 2012 03:35:21 -0000 *************** *** 87,92 **** #define CVSFLT_WIN32_DEVICE_NAME L"\\\\.\\CvsFlt" ! #define CVSFLT_VERSION 0x0101 #endif --- 87,92 ---- #define CVSFLT_WIN32_DEVICE_NAME L"\\\\.\\CvsFlt" ! #define CVSFLT_VERSION 0x0102 #endif Index: cvsflt/makefile.mak =================================================================== RCS file: /scotty/cvsflt/cvsflt/makefile.mak,v retrieving revision 1.2 diff -c -r1.2 makefile.mak *** cvsflt/makefile.mak 14 Sep 2012 02:53:10 -0000 1.2 --- cvsflt/makefile.mak 18 Sep 2012 04:26:12 -0000 *************** *** 8,14 **** # MAKEFLAGS=/NOLOGO $(MAKEFLAGS) ! WINDDK=C:\WinDDK\5112 DDKSET=$(WINDDK)\bin\setenv.bat all: cleanall i386 amd64 --- 8,15 ---- # MAKEFLAGS=/NOLOGO $(MAKEFLAGS) ! # WINDDK=C:\WinDDK\5112 ! WINDDK=d:\WinDDK\7600.16385.1 DDKSET=$(WINDDK)\bin\setenv.bat all: cleanall i386 amd64 *************** *** 47,53 **** @cmd.exe /c "$(DDKSET) $(WINDDK) fre wxp && cd /d $(MAKEDIR) && ""$(MAKE)"" -f makefile && exit" cvsflt64: ! @cmd.exe /c "$(DDKSET) $(WINDDK) fre amd64 wnet && cd /d $(MAKEDIR) && ""$(MAKE)"" /NOLOGO -f makefile && exit" !Endif --- 48,54 ---- @cmd.exe /c "$(DDKSET) $(WINDDK) fre wxp && cd /d $(MAKEDIR) && ""$(MAKE)"" -f makefile && exit" cvsflt64: ! @cmd.exe /c "$(DDKSET) $(WINDDK) fre x64 wnet && cd /d $(MAKEDIR) && ""$(MAKE)"" /NOLOGO -f makefile && exit" !Endif Index: wix/cvsflt.cdf =================================================================== RCS file: /scotty/cvsflt/wix/cvsflt.cdf,v retrieving revision 1.2 diff -c -r1.2 cvsflt.cdf *** wix/cvsflt.cdf 14 Sep 2012 05:20:45 -0000 1.2 --- wix/cvsflt.cdf 18 Sep 2012 03:35:04 -0000 *************** *** 4,10 **** [CatalogFiles] cvsflt.inf=..\cvsflt_release.inf ! cvsflt.infATTR1=0x10010001:File:cvsflt_release.inf cvsflt.infATTR2=0x10010001:OSAttr:2:5.00,2:5.1,2:5.2 cvsflt.sys=..\i386\cvsflt.sys cvsflt.sysATTR1=0x10010001:File:cvsflt.sys --- 4,10 ---- [CatalogFiles] cvsflt.inf=..\cvsflt_release.inf ! cvsflt.infATTR1=0x10010001:File:cvsflt.inf cvsflt.infATTR2=0x10010001:OSAttr:2:5.00,2:5.1,2:5.2 cvsflt.sys=..\i386\cvsflt.sys cvsflt.sysATTR1=0x10010001:File:cvsflt.sys Index: wix/cvsflt.wxs =================================================================== RCS file: /scotty/cvsflt/wix/cvsflt.wxs,v retrieving revision 1.7 diff -c -r1.7 cvsflt.wxs *** wix/cvsflt.wxs 14 Sep 2012 08:42:25 -0000 1.7 --- wix/cvsflt.wxs 18 Sep 2012 03:34:09 -0000 *************** *** 64,71 **** ! ! --- 64,71 ---- ! !