The IOCC_DEVICE_CONTROL CommandCode consists of all the CommmandModifiers responsible for device control.
The following table describes the IOCC_DEVICE_CONTROL CommandModifiers:
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³CommandModifier ³Description ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³IOCM_ABORT ³Aborts the unit's current operation ³ ³ ³and causes the driver to return any ³ ³ ³pending work in its queues. ³ ³ ³Support is mandatory for SCSI ³ ³ ³devices. ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³IOCM_RESET ³Resets the unit to its default ³ ³ ³operating parameters. ³ ³ ³Support is mandatory for SCSI ³ ³ ³devices. ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³IOCM_SUSPEND ³Suspends the unit's current ³ ³ ³operation. This command provides for³ ³ ³sharing disk controller hardware ³ ³ ³with other device drivers. ³ ³ ³Support is mandatory for diskette ³ ³ ³controllers. ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³IOCM_RESUME ³Resumes the unit's suspended ³ ³ ³operation. This command provides ³ ³ ³for the sharing of the diskette ³ ³ ³controller with other device ³ ³ ³drivers. ³ ³ ³Support is mandatory for diskette ³ ³ ³controllers. ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³IOCM_LOCK_MEDIA ³Locks the current media in the unit.³ ³ ³Support is mandatory for SCSI ³ ³ ³adapter device drivers and for other³ ³ ³devices that support a media-locking³ ³ ³function. ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³IOCM_UNLOCK_MEDIA ³Unlocks the current media from the ³ ³ ³unit. ³ ³ ³Mandatory for SCSI adapter device ³ ³ ³drivers and for other devices that ³ ³ ³support a media-locking function. ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³IOCM_EJECT_MEDIA ³Ejects the current media from the ³ ³ ³unit. ³ ³ ³Mandatory for SCSI adapter device ³ ³ ³drivers and for other devices that ³ ³ ³support a media-locking function. ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Remarks
Support:
Format of IORB
IORB_DEVICE_CONTROL Description
This section defines the IORB_DEVICE_CONTROL control block. (See the following table.)
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿³Field Name ³C-Type ³Length ³Description ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³iorbh ³IORBH ³DB(68) ³IORB header ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³Flags ³USHORT ³DW ³Flags ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³Reserved ³USHORT ³DW ³Reserved ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
On entry to the driver:
iorbh
See IORB General Format.
Flags
contains flags defined only for IOCM_SUSPEND requests. For all other requests,
this field equals 0.
The following table describes the IOCM_SUSPEND flags.
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³Flag ³Description ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³DC_SUSPEND_DEFERRED ³Suspend on idle. If set, this flag ³ ³ ³indicates that the suspend should ³ ³ ³occur once the unit is idle. ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³DC_SUSPEND_IMMEDIATE ³Suspend immediate. If set this flag³ ³ ³indicates that the suspend should ³ ³ ³occur once the current request is ³ ³ ³complete. ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Reserved
contains a 0.
On exit, the driver sets the Status and ErrorCode fields of the IORBH to reflect the results of the IOCC_DEVICE_CONTROL request.
Return Codes
Following is a list of the IOCC_DEVICE_CONTROL error codes:
IOERR_CMD_NOT_SUPPORTED
IOERR_CMD_SYNTAX
IOERR_CMD_SW_RESOURCE
IOERR_UNIT_NOT_ALLOCATED
IOERR_UNIT_NOT_READY
IOERR_UNIT_PWR_OFF
For a detailed description of all the return codes, see Error Handling.