---------------------------------------------------------------------------------------------------
[BUG/PRB.] VFP 9.0 FIX - THE NUMBER OF TIMES TO TRY AGAIN AFTER CREATING DIRECTORY FAILED
January 2025
---------------------------------------------------------------------------------------------------
CCB
1. BUG:
In vfp9 (and vfp6, vfp7, vfp8), somtimes the MKDIR (or MD) command fails on Windows Vista or later.
2. CAUSE:
There are some compatible problems when the MKDIR (or MD) command calls the _mkdir Windows API
for the Windows Defender program or the antivirus programs.
Now if the MKDIR (or MD) command calling the _mkdir Windows API failed,
it will call the _mkdir Windows API many times again.
There are some BUGs in the following code.
3. RESOLUTION:
We can write some code to fix the BUG.
Label4ba8e9 ::
push ebp ;0x004ba8e9 : 55
mov ebp , esp ;0x004ba8ea : 8bec
and esp , 0FFFFFFF8h ;0x004ba8ec : 83e4f8
sub esp , 0220h ;0x004ba8ef : 81ec20020000
mov eax , dword ptr [ Data937090 ] ;0x004ba8f5 : a190709300
push esi ;0x004ba8fa : 56
push edi ;0x004ba8fb : 57
mov dword ptr [ esp + 0224h ] , eax ;0x004ba8fc : 89842424020000
pushd 00h ;0x004ba903 : 6a00
lea eax , dword ptr [ esp + 20 ] ;0x004ba905 : 8d442414
push eax ;0x004ba909 : 50
mov eax , 0105h ;0x004ba90a : b805010000
call Fun5463b6 ;0x004ba90f : e8a2ba0800
mov al , byte ptr [ esp + 16 ] ;0x004ba914 : 8a442410
test al , al ;0x004ba918 : 84c0
je Label59890f ;0x004ba91a : 0f84efdf0d00
;
; ----------------------------------------------------------------------------------------
; VFP 9.0 FIX - THE NUMBER OF TIMES TO TRY AGAIN AFTER CREATING DIRECTORY FAILED
; March 2019
; ----------------------------------------------------------------------------------------
; CCB
;
; The number of times to try again after creating directory failed.
;
; 2019/3/6, by ccb
;
; lea ecx , dword ptr [ esp + 16 ] ;0x004ba920 : 8d4c2410
; push ecx ;0x004ba924 : 51
; call _mkdir ;0x004ba925 : ff1520799100
; add esp , 04h ;0x004ba92b : 83c404
; call Label42d319 ;0x004ba92e : e8e629f7ff
mov dword ptr vfpa_mkdir_mkdir_cnt,00h
Label4ba920 ::
lea ecx , dword ptr [ esp + 16 ]
push ecx
call _mkdir
add esp , 04h
call Label42d319
test eax , eax
je Label4ba933
cmp eax , 079h
je Label4ba933
mov ecx,dword ptr vfpa_sys9016_data
inc dword ptr vfpa_mkdir_mkdir_cnt
cmp dword ptr vfpa_mkdir_mkdir_cnt,ecx
ja Label4ba933
push dword ptr vfpa_sys9074_data
call Sleep
jmp Label4ba920
Label4ba933 ::
test eax , eax ;0x004ba933 : 85c0
je Label5989c2 ;0x004ba935 : 0f8487e00d00
xor esi , esi ;0x004ba93b : 33f6
lea ebx , dword ptr [ebx] ;0x004ba93d : 8d1b
Label4ba93f ::
mov al , byte ptr [ esp + esi + 16 ] ;0x004ba93f : 8a443410
test al , al ;0x004ba943 : 84c0
je Label4ba96d ;0x004ba945 : 7426
mov al , byte ptr [ esp + esi + 17 ] ;0x004ba947 : 8a443411
test al , al ;0x004ba94b : 84c0
je Label4ba96c ;0x004ba94d : 741d
mov al , byte ptr [ esp + esi + 18 ] ;0x004ba94f : 8a443412
test al , al ;0x004ba953 : 84c0
je Label598919 ;0x004ba955 : 0f84bedf0d00
add esi , 03h ;0x004ba95b : 83c603
cmp esi , 0105h ;0x004ba95e : 81fe05010000
jnl Label598921 ;0x004ba964 : 0f8db7df0d00
jmp Label4ba93f ;0x004ba96a : ebd3
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_vfp9fix71.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_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
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
6. OTHER:
For reference only, there is no guarantees.
Any questions or suggestions, please send me an email at ccb2000@163.com.
|