|
|
1.1 ! root 1: /*++ ! 2: ! 3: Copyright (c) 1993 - Colorado Memory Systems, Inc. ! 4: All Rights Reserved ! 5: ! 6: Module Name: ! 7: ! 8: pause.c ! 9: ! 10: Abstract: ! 11: ! 12: stops the tape and rewinds 3 blocks. ! 13: ! 14: Revision History: ! 15: ! 16: ! 17: ! 18: ! 19: --*/ ! 20: ! 21: // ! 22: // include files ! 23: // ! 24: ! 25: #include <ntddk.h> // various NT definitions ! 26: #include <ntdddisk.h> // disk device driver I/O control codes ! 27: #include <ntiologc.h> ! 28: #include "common.h" ! 29: #include "drvtask.h" // this driver's data declarations ! 30: #include "mt1defs.h" // this driver's data declarations ! 31: #include "mt1strc.h" // this driver's data declarations ! 32: #include "q117data.h" // this driver's data declarations ! 33: ! 34: ! 35: STATUS ! 36: Q117iPauseTape( ! 37: IN PTAPE_EXTENSION TapeExtension ! 38: ) ! 39: ! 40: /*++ ! 41: ! 42: Routine Description: ! 43: ! 44: Stop the tape by issuing a Pause command to the tape drive. The Pause ! 45: command will both stop the tape and rewind it back a few blocks. ! 46: ! 47: Arguments: ! 48: ! 49: TapeExtension - ! 50: ! 51: Return Value: ! 52: ! 53: ! 54: ! 55: --*/ ! 56: ! 57: { ! 58: STATUS retval = NoErr; ! 59: ! 60: if ((retval = Q117iSendByte(TapeExtension, Pause)) == NoErr) { ! 61: ! 62: if ((retval = Q117iWaitCommandComplete(TapeExtension, mt_wt016s)) == NoErr) { ! 63: ! 64: TapeExtension->TapePosition.LogFwd = FALSE; ! 65: ! 66: } ! 67: } ! 68: ! 69: if (retval == TimeOut) { ! 70: ! 71: if((retval = Q117iSendByte(TapeExtension, Pause)) == NoErr) { ! 72: ! 73: if ((retval = Q117iWaitCommandComplete(TapeExtension, mt_wt016s)) == NoErr) { ! 74: ! 75: TapeExtension->TapePosition.LogFwd = FALSE; ! 76: ! 77: } ! 78: } ! 79: ! 80: } ! 81: ! 82: Q117iDLockUnlockDMA(TapeExtension, FALSE); ! 83: ! 84: ! 85: return(retval); ! 86: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.