----------------------------------------------------------------------------------------------------
[BUG/PRB.] VFP 9.0 FIX - THE NUMBER OF TIMES TO TRY AGAIN AFTER CREATING TABLE FILE FAILED
January 2025
----------------------------------------------------------------------------------------------------
CCB
1. BUG:
In vfp9 (and vfp6, vfp7, vfp8), somtimes the CREATE TABLE command fails on Windows Vista or later.
2. CAUSE:
There are some compatible problems when the CREATE TABLE command calls the CreateFileA Windows API
for the Windows Defender program or the antivirus programs.
Now if the CREATE TABLE 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.
Label52b12c ::
lea eax , dword ptr [ ebp + 08B4h ] ;0x0052b12c : 8d85b4080000
push eax ;0x0052b132 : 50
xor edi , edi ;0x0052b133 : 33ff
mov ebx , offset Data919ea0 ;0x0052b135 : bba09e9100
call Fun52a205 ;0x0052b13a : e8c6f0ffff
test eax , eax ;0x0052b13f : 85c0
jl Label52b14c ;0x0052b141 : 7c09
cmp eax , 02h ;0x0052b143 : 83f802
jle Label5e4dd7 ;0x0052b146 : 0f8e8b9c0b00
Label52b14c ::
lea eax , dword ptr [ ebp + 08B4h ] ;0x0052b14c : 8d85b4080000
push eax ;0x0052b152 : 50
call Fun52b1a8 ;0x0052b153 : e850000000
test eax , eax ;0x0052b158 : 85c0
jne Label5e4dfe ;0x0052b15a : 0f859e9c0b00
lea eax , dword ptr [ ebp + 09BCh ] ;0x0052b160 : 8d85bc090000
call Fun52b0e4 ;0x0052b166 : e879ffffff
mov ebx , eax ;0x0052b16b : 8bd8
test ebx , ebx ;0x0052b16d : 85db
mov dword ptr [ ebp + 44 ] , ebx ;0x0052b16f : 895d2c
jne Label5e4e0a ;0x0052b172 : 0f85929c0b00
Label52b178 ::
;
; -----------------------------------------------------------------------------------------
; VFP 9.0 FIX - THE NUMBER OF TIMES TO TRY AGAIN AFTER CREATING TABLE FILE FAILED
; September 2024
; -----------------------------------------------------------------------------------------
; CCB
;
; The number of times to try again after creating table file (the CREATE TABLE command) failed.
;
; 2024/9/19, by ccb
;
mov dword ptr vfpa_createtablefile_iscreatetablefile,01h
xor ecx , ecx ;0x0052b178 : 33c9
lea edx , dword ptr [ ebp + 08B4h ] ;0x0052b17a : 8d95b4080000
call Fun52a2ee ;0x0052b180 : e869f1ffff
;
; -----------------------------------------------------------------------------------------
; VFP 9.0 FIX - THE NUMBER OF TIMES TO TRY AGAIN AFTER CREATING TABLE FILE FAILED
; September 2024
; -----------------------------------------------------------------------------------------
; CCB
;
; The number of times to try again after creating table file (the CREATE TABLE command) failed.
;
; 2024/9/19, by ccb
;
Label52b184 ::
mov dword ptr vfpa_createtablefile_iscreatetablefile,00h
Label52b185 ::
test eax , eax ;0x0052b185 : 85c0
jne Label5e4e44 ;0x0052b187 : 0f85b79c0b00
pushd 01h ;0x0052b18d : 6a01
lea eax , dword ptr [ ebp + 08B4h ] ;0x0052b18f : 8d85b4080000
push eax ;0x0052b195 : 50
call Fun52a2da ;0x0052b196 : e83ff1ffff
test eax , eax ;0x0052b19b : 85c0
je Label5310f6 ;0x0052b19d : 0f84535f0000
jmp Label530fc9 ;0x0052b1a3 : e9215e0000
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_vfp9fix350.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_vfp9fix261.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix262.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
2, microsoft.com:
https://devblogs.microsoft.com/oldnewthing/20120907-00/?p=6663
6. OTHER:
For reference only, there is no guarantees.
Any questions or suggestions, please send me an email at ccb2000@163.com.
|