private void CheckError(UInt32 code)
        {
            switch (code)
            {
            case 1102:                          // ERROR_BEGINNING_OF_MEDIA
                beginningMediaDetected = true;
                break;

            case 1100:                          // ERROR_END_OF_MEDIA
                endMediaDetected = true;
                break;

            case 1103:                          // ERROR_SETMARK_DETECTED
                setMarkDetected = true;
                break;

            case 1101:                          // ERROR_FILEMARK_DETECTED
                fileMarkDetected = true;
                break;

            case 1104:                          // ERROR_NO_DATA_DETECTED
                endOfDataDetected = true;
                break;

            case 19:                                    // ERROR_WRITE_PROTECT
                throw(new WriteProtectedException());

            default:
                TapeDriveFunctions.CheckGeneralError(code);
                break;
            }
        }
        private void CheckError(UInt32 code)
        {
            switch (code)
            {
            case 1105:                          // ERROR_PARTITION_FAILURE
                throw(new TapeDriveException("Format failed: Tape could not be partitioned"));

            case 1108:                          // ERROR_UNABLE_TO_LOCK_MEDIA
                throw(new LockFailedException());

            case 1109:                          // ERROR_UNABLE_TO_UNLOAD_MEDIA
                break;

            default:
                TapeDriveFunctions.CheckGeneralError(code);
                break;
            }
        }