Jump to content

DosFreeMem: Difference between revisions

From EDM2
Ak120 (talk | contribs)
mNo edit summary
Ak120 (talk | contribs)
mNo edit summary
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
DosFreeMem will free the private or shared memory block from the process. The released page  
DosFreeMem will free the private or shared memory block from the process. The released page will automaticly get an access protection of 'no access'. If no other references to this memory block exists throughout the system, it will be discarded, and can later be reused.
will automaticly get an access protection of 'no access'. If no other references to this  
memory block exists throughout the system, it will be discarded, and can later be reused.


=== Syntax ===
=== Syntax ===
  rc = DosFreeMem( ''pBaseAddress'' );
  DosFreeMem( ''pBaseAddress'' )


=== Parameters ===
=== Parameters ===
;PVOID ''pBaseAddress'' (input):This variable should contain the base address of the private/shared memory object, whose reference is to be freed.
;PVOID ''pBaseAddress'' (input):This variable should contain the base address of the private/shared memory object, whose reference is to be freed.
 
=== Returns ===
=== Returns ===
  APIRET rc
  APIRET rc

Latest revision as of 14:58, 10 December 2022

DosFreeMem will free the private or shared memory block from the process. The released page will automaticly get an access protection of 'no access'. If no other references to this memory block exists throughout the system, it will be discarded, and can later be reused.

Syntax

DosFreeMem( pBaseAddress )

Parameters

PVOID pBaseAddress (input)
This variable should contain the base address of the private/shared memory object, whose reference is to be freed.

Returns

APIRET rc

The following values can be returned

0 NO_ERROR
5 ERROR_ACCESS_DENIED
95 ERROR_INTERRUPT
487 ERROR_INVALID_ADDRESS

Include Info

#define INCL_DOSMEMMGR
#include <os2.h>

Sample Code

#define INCL_DOSMEMMGR
#include <os2.h>

PVOID BaseAddress;  /* Pointer to the allocated memory block */
/* We allocate a memory block, and put the base address of it in BaseAddress */
	rc = DosFreeMem( BaseAddress);
	if (rc != 0)
	{
	  /* We got an error to take care of. */
	}

See Also