Important: The information in this document is obsolete and should not be used for new development.
PBKillIO
You can use thePBKillIO
function to terminate all current and pending I/O requests for a device driver.
pascal OSErr PBKillIO(ParmBlkPtr paramBlock, Boolean async);
paramBlock
- A pointer to a
CntrlParam
structure of the Device Manager parameter block.async
- A Boolean value that indicates whether the request is asynchronous. You must set this field to
false
because thePBKillIO
function does not support asynchronous requests.
--> ioCompletion ProcPtr A pointer to a completion routine. <-- ioResult OSErr The device driver's result code. --> ioCRefNum short The driver reference number. DESCRIPTION
ThePBKillIO
function stops any current I/O request being processed by the driver specified by theioCRefNum
field, and removes all pending requests from the I/O queue for that driver. The Device Manager calls the completion routine, if any, for each pending request, and sets theioResult
field of each request equal to the result codeabortErr
.The Device Manager passes
PBKillIO
requests to a device driver only if the driver is open and enabled for control calls. If the driver returns an error, the I/O queue is left unchanged and no completion routines are called.
- WARNING
- The
PBKillIO
function terminates all pending I/O requests for a driver, including requests initiated by other applications.SPECIAL CONSIDERATIONS
The Device Manager always executes thePBKillIO
function immediately; that is, it never places aPBKillIO
request in the I/O queue. However, you should not call this function immediately--always call thePBKillIO
function synchronously.Although the Device Manager imposes no restrictions on calling
PBKillIO
at interrupt time, you should consult a device driver's documentation to determine if it supports this.ASSEMBLY-LANGUAGE INFORMATION
The trap macro for thePBKillIO
function is_KillIO
(0xA006). You must set up register A0 with the address of the parameter block. When_KillIO
returns, register D0 contains the result code. Register D0 is the only register affected by this function.
Registers on entry A0 Address of the parameter block
Registers on exit D0 Result code RESULT CODES
noErr 0 No error controlErr -17 Driver does not respond to this control request badUnitErr -21 Driver reference number does not match unit table unitEmptyErr -22 Driver reference number specifies a nil
handle in unit tablenotOpenErr -28 Driver not open SEE ALSO
For information about the high-level function for terminating current and pending I/O requests for a driver, see the description of theKillIO
function on page 1-80.