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