![[Contents]](../images/toc_d.gif) 
![[Index]](../images/index.gif) 
![[Help]](../images/help_d.gif) 
![[Retrace]](../images/retrace_d.gif) 
![[Browse <]](../images/prev.gif) 
![[Browse >]](../images/next.gif) 
Each OpenDevice() must eventually be matched by a call to CloseDevice().
All I/O requests must be complete before CloseDevice().  If any requests
are still pending, abort them with AbortIO():
   if (!(CheckIO(InputIO)))
       {
       AbortIO(InputIO);  /* Ask device to abort request, if pending */
       }
   WaitIO(InputIO);       /* Wait for abort, then clean up */
   CloseDevice((struct IORequest *)InputIO);