Application Verifier Reports "Incorrect FreeType parameter for VirtualFree opera

Hi, I am using COMDO Firewall 4.1.150349.920.

When I debug my own program with WinDBG and MS Application Verifier is enabled for my program, WinDBG will report a “Incorrect FreeType parameter for VirtualFree operation” message:

=======================================
VERIFIER STOP 0000060A: pid 0x5E8: Incorrect FreeType parameter for VirtualFree operation.

0000C000 : Incorrect value used by the application.
00004000 : Expected correct value 1.
00008000 : Expected correct value 2.
00000000 : Not used.

=======================================
This verifier stop is continuable.
After debugging it use `go’ to continue.

=======================================

(5e8.116c): Break instruction exception - code 80000003 (first chance)
eax=029a6fe8 ebx=00398858 ecx=00000001 edx=0332f91d esi=00000000 edi=029a6fe8
eip=7c92120e esp=0332f9ac ebp=0332fbb0 iopl=0 nv up ei pl nz na po nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202
ntdll!DbgBreakPoint:
7c92120e cc int 3
0:003> kb
ChildEBP RetAddr Args to Child
0332f9a8 10003b68 13322cd0 0332fc10 0332fc0c ntdll!DbgBreakPoint
0332fbb0 00392b0a 003961c8 0000060a 0000c000 vrfcore!VerifierStopMessageEx+0x4d1
0332fbe0 7c809bcf ffffffff 0332fc0c 00000000 vfbasics!AVrfpNtFreeVirtualMemory+0x5a
0332fc00 7c809b99 ffffffff 02d70000 00000000 kernel32!VirtualFreeEx+0x37
0332fc18 003927ff 02d70000 00000000 0000c000 kernel32!VirtualFree+0x15
*** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\WINDOWS\system32\guard32.dll -
0332fc60 021e5079 02d70000 00000000 0000c000 vfbasics!AVrfpVirtualFree+0x82
WARNING: Stack unwind information not available. Following frames may be wrong.
0332fc74 021e4efa 0332fc84 021e502d 0332fcc4 guard32!Exported+0x1b9
0332fc7c 021e502d 0332fcc4 021ca2d7 021c0000 guard32!Exported+0x3a
0332fc84 021ca2d7 021c0000 00000000 00000001 guard32!Exported+0x16d
0332fcc4 021ca37f 021c0000 0332fd18 1000898c guard32+0xa2d7
0332fcd0 1000898c 021c0000 00000000 00000001 guard32+0xa37f
0332fd18 0038f544 021c0000 00000000 00000001 vrfcore!VfCoreStandardDllEntryPointRoutine+0x128
0332fd6c 7c92118a 021c0000 00000000 00000001 vfbasics!AVrfpStandardDllEntryPointRoutine+0x97
0332fd8c 7c943ada 0038f4ad 021c0000 00000000 ntdll!LdrpCallInitRoutine+0x14
0332fe10 7c81caae 00000000 00000001 00000000 ntdll!LdrShutdownProcess+0x14f
0332ff04 7c81cb26 c000013a 77e8f3b0 ffffffff kernel32!_ExitProcess+0x42
0332ff18 7c8763bb c000013a 7c8764d8 00000000 kernel32!ExitProcess+0x14
0332ff20 7c8764d8 00000000 00000000 0018143c kernel32!DefaultHandler+0xa
0332ffb4 7c80b729 00000000 00000000 0018143c kernel32!CtrlRoutine+0x10e
0332ffec 00000000 7c8763c0 00000000 00000000 kernel32!BaseThreadStart+0x37

From the stack trace, I guess that the guard32.dll does not call virtualfree correctly.

The guard32.dll version is :4.1.18600.916, length is 271 KB (278,288 bytes).