Important: The information in this document is obsolete and should not be used for new development.
PBKillIO
You can use thePBKillIOfunction 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
CntrlParamstructure of the Device Manager parameter block.async- A Boolean value that indicates whether the request is asynchronous. You must set this field to
falsebecause thePBKillIOfunction 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
ThePBKillIOfunction stops any current I/O request being processed by the driver specified by theioCRefNumfield, 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 theioResultfield of each request equal to the result codeabortErr.The Device Manager passes
PBKillIOrequests 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
PBKillIOfunction terminates all pending I/O requests for a driver, including requests initiated by other applications.![]()
SPECIAL CONSIDERATIONS
The Device Manager always executes thePBKillIOfunction immediately; that is, it never places aPBKillIOrequest in the I/O queue. However, you should not call this function immediately--always call thePBKillIOfunction synchronously.Although the Device Manager imposes no restrictions on calling
PBKillIOat interrupt time, you should consult a device driver's documentation to determine if it supports this.ASSEMBLY-LANGUAGE INFORMATION
The trap macro for thePBKillIOfunction is_KillIO(0xA006). You must set up register A0 with the address of the parameter block. When_KillIOreturns, 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 nilhandle 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 theKillIOfunction on page 1-80.