---------------------------------------------------------------------------------------- [ENHANCED] VFP 9.0 FIX - SYS(9074) SETS OR RETURNS ACCESS FILES RETRY INTERVAL January 2024 ---------------------------------------------------------------------------------------- CCB 1. THE SYS(9074) FUNCTION: SYS(9074) - Sets or returns access files retry interval Sets or returns access files retry interval. SYS(9074 [, nWaitMilliseconds]) Parameters nWaitMilliseconds The nWaitMilliseconds parameter determines access files retry interval. The range for nWaitMilliseconds is 1 to 1000 milliseconds. The default value is 50 milliseconds. Specify 0 for nWaitMilliseconds to return the default value (50 milliseconds). Omitting nWaitMilliseconds returns the current setting. Return Value Character Remarks The value is applied globally. 2. CAUSE: There are some BUGs in the following code. 3. RESOLUTION: We can write some code to fix the BUG. Fun529fca :: ; proc near push ebp ;0x00529fca : 55 mov ebp , esp ;0x00529fcb : 8bec pushd 0FFFFFFFFh ;0x00529fcd : 6aff pushd offset Data922268 ;0x00529fcf : 6868229200 pushd offset Label9160f9 ;0x00529fd4 : 68f9609100 mov eax , dword ptr fs:[00h] ;0x00529fd9 : 64a100000000 push eax ;0x00529fdf : 50 mov dword ptr fs:[00h] , esp ;0x00529fe0 : 64892500000000 push ecx ;0x00529fe7 : 51 push ecx ;0x00529fe8 : 51 mov eax , 02FBCh ;0x00529fe9 : b8bc2f0000 call Fun42c118 ;0x00529fee : e82521f0ff mov eax , dword ptr [ Data937090 ] ;0x00529ff3 : a190709300 mov dword ptr [ ebp - 28 ] , eax ;0x00529ff8 : 8945e4 push ebx ;0x00529ffb : 53 push esi ;0x00529ffc : 56 push edi ;0x00529ffd : 57 mov dword ptr [ ebp - 24 ] , esp ;0x00529ffe : 8965e8 xor edi , edi ;0x0052a001 : 33ff mov dword ptr [ ebp + 0FFFFD114h ] , edi ;0x0052a003 : 89bd14d1ffff push edi ;0x0052a009 : 57 pushd 02710h ;0x0052a00a : 6810270000 push edi ;0x0052a00f : 57 mov ebx , dword ptr [ ebp + 8 ] ;0x0052a010 : 8b5d08 mov eax , ebx ;0x0052a013 : 8bc3 call Fun529bc5 ;0x0052a015 : e8abfbffff mov dword ptr [ ebp + 0FFFFD0E4h ] , eax ;0x0052a01a : 8985e4d0ffff mov dword ptr [ ebp + 0FFFFD10Ch ] , edi ;0x0052a020 : 89bd0cd1ffff lea ecx , dword ptr [ ebp + 0FFFFFDE0h ] ;0x0052a026 : 8d8de0fdffff mov dword ptr [ ebp + 0FFFFD100h ] , ecx ;0x0052a02c : 898d00d1ffff mov byte ptr [ ebp + 0FFFFFDE0h ] , 00h ;0x0052a032 : c685e0fdffff00 movsx eax , ax ;0x0052a039 : 0fbfc0 ; ; ----------------------------------------------------------------------------- ; VFP 9.0 FIX - SYS(9074) SETS OR RETURNS ACCESS FILES RETRY INTERVAL ; January 2022 ; ----------------------------------------------------------------------------- ; CCB ; ; SYS(9074) - Sets or returns access files retry interval. ; ; 2022/1/22, by ccb ; cmp eax,9074 je vfpa_sys9074_start pushd 064h ;0x0052a03c : 6a64 pop esi ;0x0052a03e : 5e cmp eax , esi ;0x0052a03f : 3bc6 jle Label52a0d0 ;0x0052a041 : 0f8e89001000 mov ecx , 07EAh ;0x0052a047 : b9ea070000 cmp eax , ecx ;0x0052a04c : 3bc1 jg Label52a164 ;0x0052a04e : 0f8f10010000 je Label609b33 ;0x0052a054 : 0f84d9fa0d00 mov ecx , 04F6h ;0x0052a05a : b9f6040000 cmp eax , ecx ;0x0052a05f : 3bc1 jle Label52b6e0 ;0x0052a061 : 0f8e79160000 mov ecx , 07DBh ;0x0052a067 : b9db070000 cmp eax , ecx ;0x0052a06c : 3bc1 jg Label51f355 ;0x0052a06e : 0f8fe152ffff je Label609700 ;0x0052a074 : 0f8486f60d00 add ecx , 0FFFFFFF9h ;0x0052a07a : 83c1f9 cmp eax , ecx ;0x0052a07d : 3bc1 jg Label4a4938 ;0x0052a07f : 0f8fb3a8f7ff je Label4f6b07 ;0x0052a085 : 0f847ccafcff sub eax , 04F7h ;0x0052a08b : 2df7040000 je Label60951e ;0x0052a090 : 0f8488f40d00 dec eax ;0x0052a096 : 48 je Label60950f ;0x0052a097 : 0f8472f40d00 sub eax , 0E4h ;0x0052a09d : 2de4000000 je Label609492 ;0x0052a0a2 : 0f84eaf30d00 sub eax , 01F4h ;0x0052a0a8 : 2df4010000 jne Label462026 ;0x0052a0ad : 0f85737ff3ff lea eax , dword ptr [ ebp + 0FFFFFDE0h ] ;0x0052a0b3 : 8d85e0fdffff push eax ;0x0052a0b9 : 50 push dword ptr [ ebp + 12 ] ;0x0052a0ba : ff750c mov edx , ebx ;0x0052a0bd : 8bd3 call Fun4dc923 ;0x0052a0bf : e85f28fbff 4. APPLIES TO: VFP 10 (VFP Advanced) 5. REFERENCE WEBSITES: 1, baiyujia.com: http://www.baiyujia.com 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_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. |