#include <isp.h>
typedef struct ISP_IOP_create {
ISP ISP_i_c_hdr; // Standard header
USHORT ISP_IOP_size; // size of IOP to allocate, in bytes
ULONG ISP_delta_to_ior; // offset to IOR within IOP
ULONG ISP_IOP_ptr; // address of IOP
UCHAR ISP_i_c_flags; // allocation flags; see below
UCHAR ISP_pad2[1]; // Pad to DWORD boundary
} ISP_IOP_alloc, *PISP_IOP_alloc;
Contains information for a ISP_CREATE_IOP function.
ISP_M_FL_EXTERNAL_IOP | Allocates memory using VMMCall _HeapAllocate instead of IOP's private memory. The only difference between this call and ISP_M_FL_PERSISTENT_IOP, is that this IOP gets timeout support. |
ISP_M_FL_INTERRUPT_TIME | Must be set if allocation is at asynchronous time. |
ISP_M_FL_MUST_SUCCEED | If set, IOS will not fail the allocation. If set, the function might take some time to complete, awaiting for free memory. |
ISP_M_FL_PERSISTENT_IOP | Allocation is for a long time IOP. Allocates memory using VMMCall _HeapAllocate instead of IOP's private memory heap. Also, the IOP is not added to the IOP timeout chain (the persistent IOP has no timeout support). |
ISP_M_FL_SMART_ALLOC | Do system heap allocation if not MS-DOS pager. Checks IOS's IDA structure element IDAF_DOS_PAGER to determine if system is paging through DOS. If not paging through DOS, do a system heap allocation. Otherwise use IOS's memory management system. |
ISP_M_FL_USE_SYSTEM_HEAP | Don't allocate from IOS heap. Instead, uses VMMCall _HeapAllocate. |
IOP, ISP