PRB: "Entry point GetFreeSystemResources not found" Error

ID: Q146424


The information in this article applies to:
  • Microsoft Visual FoxPro for Windows, versions 3.0, 3.0b, 6.0


SYMPTOMS

A method for obtaining Windows system resources is described in the following Microsoft Knowledge Base article:

Q111508 How to Check Available Windows System Resources
If this method is used under Windows 95 or Windows NT, the following error occurs when the function is registered with RegFn():
Entry point GetFreeSystemResources not found


CAUSE

The GetFreeSystemResources function is not contained in the API libraries searched by default.


RESOLUTION

In the RegFn function, you need to explicitly reference User.exe where this API function is contained.


STATUS

This behavior is by design.


MORE INFORMATION

Steps to Reproduce Behavior

This is a modification of the code example in article Q111508. Enter the following commands into a program file, and run the file:

* Beginning of Check System Resources program

   LOCAL nGetSysRes, nRetVal

   #DEFINE sysreso 0
   #DEFINE gdireso 1
   #DEFINE userreso 2

   * Load the FOXTOOLS.FLL library
   SET LIBRARY TO HOME() + "FOXTOOLS.FLL" ADDITIVE

   * Call RegFN() to register the GetFreeSystemResources() function
   nGetSysRes = RegFn("GetFreeSystemResources", "I","I")

   * If RegFn() returned a value that is greater than -1, it can be
   * assumed that the function was successfully registered.
   IF nGetSysRes > -1
      nRetVal = CallFn(nGetSysRes, sysreso)
      WAIT WINDOW "Free System Resources:"+STR(nRetVal,3,0)+"%" TIMEOUT 1
      nRetVal = CallFn(nGetSysRes, gdireso)
      WAIT WINDOW "Free GDI Resources:"+STR(nRetVal,3,0)+"%"  TIMEOUT 1
      nRetVal = CallFn(nGetSysRes, userreso)
      WAIT WINDOW "Free User Resources are:"+STR(nRetVal,3,0)+"%" TIMEOUT 1
   ENDIF

   * Unload FOXTOOLS.FLL from memory

   RELEASE LIBRARY HOME()+ "FOXTOOLS.FLL"

* End of Check System Resources program 

Resolution

If the following line in the example:

   nGetSysRes = RegFn("GetFreeSystemResources", "I","I") 
is modified to read as follows:

    nGetSysRes = RegFn("GetFreeSystemResources", "I","I","USER.EXE") 
the example will successfully return system resources in Windows 3.1x, Windows 95, and Windows NT.

NOTE: The values returned vary in significance depending on the operating system. Under Windows NT, resources are dynamically allocated, and GetFreeSystemResources will always return 90% for GDI, USER, and SYSTEM. Under Windows 95, these are allocated differently. For a discussion of GDI and USER heaps under Windows 95, please see the following articles in the Microsoft Knowledge Base:
Q125699 GDI Objects and Windows 95 Heaps
Q125676 New User Heap Limits Under Windows 95

Additional query words: VFoxWin

Keywords : kbVFp300 kbVFp300b kbVFp600 FxprgFoxtools
Version : 3.00 3.00b
Platform : WINDOWS
Issue type :


Last Reviewed: August 9, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.