---------------------------------------------------------------------------------------------------
[BUG/PRB.] VFP 9.0 FIX - THE NUMBER OF TIMES TO TRY AGAIN AFTER OPENING TABLE FILE FAILED
January 2026
---------------------------------------------------------------------------------------------------
CCB
1. BUG:
In vfp9 (and vfp6, vfp7, vfp8), somtimes the open table file command fails on Windows Vista or later.
2. CAUSE:
There are some compatible problems when the open table file command calls the CreateFileA Windows API
for the Windows Defender program or the antivirus programs.
Now if the open table file command calling the CreateFileA Windows API failed,
it will call the CreateFileA Windows API many times again.
There are some BUGs in the following code.
3. RESOLUTION:
We can write some code to fix the BUG.
Fun41f9b6 :: ; proc near
push ebp ;0x0041f9b6 : 55
mov ebp , esp ;0x0041f9b7 : 8bec
sub esp , 080h ;0x0041f9b9 : 81ec80000000
push ebx ;0x0041f9bf : 53
mov ebx , dword ptr [ ebp + 16 ] ;0x0041f9c0 : 8b5d10
push esi ;0x0041f9c3 : 56
push edi ;0x0041f9c4 : 57
mov edi , dword ptr [ ebp + 8 ] ;0x0041f9c5 : 8b7d08
and ebx , 0205h ;0x0041f9c8 : 81e305020000
or ebx , 01000h ;0x0041f9ce : 81cb00100000
;
; ----------------------------------------------------------------------------------------
; VFP 9.0 FIX - THE NUMBER OF TIMES TO TRY AGAIN AFTER OPENING TABLE FILE FAILED
; March 2023
; ----------------------------------------------------------------------------------------
; CCB
;
; The number of times to try again after opening table file failed.
;
; 2023/3/26, by ccb
;
; mov dword ptr vfpa_opentablefile_isopentablefile,01h
mov edx , ebx ;0x0041f9d4 : 8bd3
mov ecx , edi ;0x0041f9d6 : 8bcf
mov dword ptr [ ebp - 12 ] , 00h ;0x0041f9d8 : c745f400000000
call Fun42ce21 ;0x0041f9df : e83dd40000
;
; ----------------------------------------------------------------------------------------
; VFP 9.0 FIX - THE NUMBER OF TIMES TO TRY AGAIN AFTER OPENING TABLE FILE FAILED
; March 2023
; ----------------------------------------------------------------------------------------
; CCB
;
; The number of times to try again after opening table file failed.
;
; 2023/3/26, by ccb
;
Label41f9e3 ::
; mov dword ptr vfpa_opentablefile_isopentablefile,00h
Label41f9e4 ::
mov esi , eax ;0x0041f9e4 : 8bf0
test esi , esi ;0x0041f9e6 : 85f6
jl Label4bb9a9 ;0x0041f9e8 : 0f8cbbbf0900
Label41f9ee ::
mov eax , dword ptr [ ebp + 16 ] ;0x0041f9ee : 8b4510
mov ecx , dword ptr [ ebp + 12 ] ;0x0041f9f1 : 8b4d0c
push eax ;0x0041f9f4 : 50
push ecx ;0x0041f9f5 : 51
push esi ;0x0041f9f6 : 56
push edi ;0x0041f9f7 : 57
call Fun41f590 ;0x0041f9f8 : e893fbffff
mov dword ptr [ ebp - 8 ] , eax ;0x0041f9fd : 8945f8
lea edx , dword ptr [ ebp - 20 ] ;0x0041fa00 : 8d55ec
lea eax , dword ptr [ ebp - 124 ] ;0x0041fa03 : 8d4584
call Fun42c27f ;0x0041fa06 : e874c80000
pushd 00h ;0x0041fa0b : 6a00
push eax ;0x0041fa0d : 50
call Fun42c2be ;0x0041fa0e : e8abc80000
mov esi , eax ;0x0041fa13 : 8bf0
add esp , 08h ;0x0041fa15 : 83c408
test esi , esi ;0x0041fa18 : 85f6
mov dword ptr [ ebp - 16 ] , esi ;0x0041fa1a : 8975f0
jne Label6198e9 ;0x0041fa1d : 0f85c69e1f00
mov ebx , dword ptr [ ebp + 8 ] ;0x0041fa23 : 8b5d08
mov eax , dword ptr [ ebx + 0108h ] ;0x0041fa26 : 8b8308010000
test eax , eax ;0x0041fa2c : 85c0
jne Label4ab1f7 ;0x0041fa2e : 0f85c3b70800
Label41fa34 ::
mov edi , ebx ;0x0041fa34 : 8bfb
mov ebx , dword ptr [ ebp - 8 ] ;0x0041fa36 : 8b5df8
call Fun41f971 ;0x0041fa39 : e833ffffff
mov edi , ebx ;0x0041fa3e : 8bfb
mov ecx , edi ;0x0041fa40 : 8bcf
call Fun41fa8d ;0x0041fa42 : e846000000
Label41fa47 ::
mov ecx , dword ptr [ Data937220 ] ;0x0041fa47 : 8b0d20729300
lea eax , dword ptr [ ebp - 124 ] ;0x0041fa4d : 8d4584
cmp eax , ecx ;0x0041fa50 : 3bc1
jne Label6198f1 ;0x0041fa52 : 0f85999e1f00
mov ecx , dword ptr [ Data937220 ] ;0x0041fa58 : 8b0d20729300
mov eax , dword ptr [ ecx + 76 ] ;0x0041fa5e : 8b414c
cmp dword ptr [ ebp - 20 ] , eax ;0x0041fa61 : 3945ec
mov dword ptr [ Data937220 ] , eax ;0x0041fa64 : a320729300
jne Label6198fb ;0x0041fa69 : 0f858c9e1f00
mov eax , dword ptr [ ebp - 12 ] ;0x0041fa6f : 8b45f4
test eax , eax ;0x0041fa72 : 85c0
jne Label619905 ;0x0041fa74 : 0f858b9e1f00
Label41fa7a ::
test esi , esi ;0x0041fa7a : 85f6
jne Label61994e ;0x0041fa7c : 0f85cc9e1f00
mov eax , edi ;0x0041fa82 : 8bc7
pop edi ;0x0041fa84 : 5f
pop esi ;0x0041fa85 : 5e
pop ebx ;0x0041fa86 : 5b
mov esp , ebp ;0x0041fa87 : 8be5
pop ebp ;0x0041fa89 : 5d
ret 0Ch ;0x0041fa8a : c20c00
4. APPLIES TO:
VFP 6.0.8167.0
VFP 6.0.8961.0 (SP5)
VFP 7.0.0.9262
VFP 7.0.0.9465 (SP1)
VFP 8.0.0.2521
VFP 8.0.0.3117 (SP1)
VFP 9.0.0.2412
VFP 9.0.0.3504 (SP1)
VFP 9.0.0.4611 (SP2)
VFP 9.0.0.5015 (SP2)
VFP 9.0.0.5411 (SP2)
VFP 9.0.0.5721 (SP2)
VFP 9.0.0.5815 (SP2)
VFP 9.0.0.6303 (SP2)
VFP 9.0.0.6602 (SP2)
VFP 9.0.0.7423 (SP2)
The bug has been fixed in VFP Advanced.
5. REFERENCE WEBSITES:
1, baiyujia.com:
http://www.baiyujia.com
http://www.baiyujia.com/vfpdocuments/f_vfp9fix261.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix65.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix66.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix67.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix68.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix69.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix70.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix71.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix72.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix73.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix74.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix84.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix85.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix107.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix108.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix109.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix110.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix143.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix144.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix145.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix146.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix147.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix148.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix149.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix150.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix203.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix269.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix270.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix278.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix279.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix348.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix349.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix350.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix351.asp
2, microsoft.com:
https://devblogs.microsoft.com/oldnewthing/20120907-00/?p=6663
3, foxite.com:
https://www.foxite.com/archives/error-111-after-zap-0000493590.htm
https://www.foxite.com/archives/intermittent-error-111-0000406044.htm
6. OTHER:
For reference only, there is no guarantees.
Any questions or suggestions, please send me an email at ccb2000@163.com.
|