FSH_FORCENOSWAP

Purpose

This function permanently forces segments into memory.

Calling Sequence

int far pascal FSH_FORCENOSWAP(sel) unsigned short sel;

Where

sel is the selector that is to be made non-swappable.

Returns

If no error is detected, a zero error code is returned. If an error is detected, one of the following error codes is returned:

ERROR_INVALID_ACCESS – indicates the selector is invalid.

ERROR_INVALID_DENIED – indicates the selector is invalid or the sector belongs to another process.

ERROR_DIRECT_ACCESS_HANDLE – indicates the handle does not refer to a segment.

ERROR_NOT_ENOUGH_MEMORY – indicates there is not enough physical memory to make a segment nonswappable.

ERROR_SWAP_TABLE_FULL – indicates the attempt to grow the swap file failed.

ERROR_SWAP_FILE_FULL – indicates the attempt to grow the swap file failed.

ERROR_PMM_INSUFFICIENT_MEMORY – indicates the attempt to grow the swap file failed.

Remarks

An FSD may call FSH_FORCENOSWAP to force segments to be loaded into memory and marked non-swappable. All segments both in the load image of the FSD and those allocated via FSH_SEGALLOC are eligible to be marked. There is no way to undo the effect of FSH_FORCENOSWAP.

If an FSD is notified it is managing the swapping media, it should make this call for the necessary segments.

An FSD should be prepared to see multiple swapping files on more than one volume in 80386 processors and in future releases of OS/2.

FSH_FORCENOSWAP may block.

Note: OS/2 does not validate input parameters. An FSD, therefore, should call FSH_PROBEBUF where appropriate.