IOS Services

The IOS provides drivers and clients with memory management and timer services. There are the following services:

ISP_ALLOC_MEM (3)

Allocate block from IOS memory.

ISP_ASSOCIATE_DCB (6)

Associate DCB and relative drive number.

ISP_CREATE_DCB (1)

Create DCB.

ISP_CREATE_DDB (0)

Create DDB.

ISP_CREATE_IOP (2)

Allocate IOP.

ISP_DEALLOC_DDB (9)

Free DDB.

ISP_DEALLOC_MEM (4)

Free block of IOS memory.

ISP_DELETE_LDM_ENTRY (19)

Delete LDM entry.

ISP_DESTROY_DCB (10)

Free DCB.

ISP_DEVICE_ARRIVED (14)

Indicate that a device has arrived.

ISP_DEVICE_REMOVED (13)

Indicate that a device has been removed.

ISP_DISASSOCIATE_DCB (15)

Disassociate DCB and drive number.

ISP_DRIVE_LETTER_PICK (16)

Pick a drive letter.

ISP_FIND_LDM_ENTRY (18)

Find LDM entry.

ISP_GET_DCB (7)

Return DCB for logical volume.

ISP_GET_FIRST_NEXT_DCB (8)

Get first or next DCB.

ISP_INSERT_CALLDOWN (5)

Insert calldown entry in DCB.

ISP_QUERY_MATCHING_DCBS (11)

Ask for logical-to-physical info.

ISP_QUERY_REMOVE_DCB (12)

Ask if we can remove a device.

ISP_REGISTRY_READ (17)

Read registry.


A driver can use an IOS service to carry out a task by calling the IOS service routine after pushing the address of a structure, called an IOS service packet (ISP), on the stack. The address of the IOS service routine is in the ILB_service_rtn member of the ILB. The content and format of the structure to pass to the routine varies from service to service, but all structures start with a standard header as defined by the ISP structure. This structure includes the ISP_func member that identifies the service to carry out and the ISP_result member that the IOS uses to indicate whether it completed the service or encountered an error. The driver should check the value of ISP_result after the IOS returns.

See also DCB, DDB, ILB, IOP, ISP