[Info-vax] yet another sys$qiow question

David Froble davef at tsoft-inc.com
Thu Aug 20 01:10:59 EDT 2015


Stephen Hoffman wrote:
> On 2015-08-19 23:30:37 +0000, David Froble said:
> 
>>
>> Ok, just so dumb me can understand, did you just write that before I'm 
>> notified of the completion of a QIO, the IOSB has been updated and 
>> ready to read?
> 
> Correct.  The following assumes that the $qio has been accepted by 
> OpenVMS without error, and is performing the requested processing 
> asynchronously.   Upon completion of the operation and while blocking 
> user-mode activity, the I/O post-processing populates the IOSB if 
> specified, then sets the event flag if specified, then triggers the 
> completion AST if specified.  If data is to be returned by the 
> particular $qio call, the data is loaded into the user-specified buffer 
> sometime between when the $qio is queued and when the I/O completion 
> post-processing is performed.   By the time your user-mode code is 
> running whether as the AST or in response to the event flag, the IOSB is 
> always valid, and any associated data is written from or to the 
> user-specified buffer, if appropriate.   If the IOSB is still zero, then 
> you're either sharing the IOSB across calls or have otherwise 
> mis-allocated the IOSB storage, or you're sharing event flags, or other 
> such coding mistake.
> 
> 
> 

Having read the fine manual, that's how I've understood things work.  I always 
check the queuing of an operation, and upon completion, I usually use ASTs, I 
then look at the IOSB, and finally the result of the operation.

Reading this thread has caused some confusion ....



More information about the Info-vax mailing list