ISP_IOP_create

#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_i_c_flags
Allocation flags. Can be one of these values:
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.

See Also

IOP, ISP