⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 logscsi.cpp

📁 DVD工具dvdsynth的源码
💻 CPP
📖 第 1 页 / 共 3 页
字号:
/***********************************************************************
 Copyright 2002 Ben Rudiak-Gould.

 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2 of the License, or
 (at your option) any later version.

 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA,
 or visit <http://www.gnu.org/copyleft/gpl.html>.
***********************************************************************/


#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#pragma hdrstop
#include <windowsx.h>
#include <commdlg.h>
#include <process.h>
#include "ui.h"
#include "logscsi.h"
#include "resource.h"


#include <stdio.h>


HINSTANCE g_hinstance;

DvsDockingBayGlobal* g_callbacks;


const char vendor_specific[] = "vendor-specific";
const char undefined[] = "unknown";

const char* scsi_command_names_00_5D[] = {
/*00*/   "TEST UNIT READY",
/*01*/   "REZERO UNIT",
/*02*/   vendor_specific,
/*03*/   "REQUEST SENSE",
/*04*/   "FORMAT UNIT",
/*05*/   "READ BLOCK LIMITS",
/*06*/   vendor_specific,
/*07*/   "REASSIGN BLOCKS",
/*08*/   "READ(6)",
/*09*/   vendor_specific,
/*0A*/   "WRITE(6)",
/*0B*/   "SEEK(6)",
/*0C*/   vendor_specific,
/*0D*/   vendor_specific,
/*0E*/   vendor_specific,
/*0F*/   vendor_specific,
/*10*/   "SYNCHRONIZE BUFFER / WRITE FILEMARKS",
/*11*/   "SPACE",
/*12*/   "INQUIRY",
/*13*/   "VERIFY(6)",
/*14*/   "RECOVER BUFFERED DATA",
/*15*/   "MODE SELECT(6)",
/*16*/   "RESERVE",
/*17*/   "RELEASE",
/*18*/   "COPY",
/*19*/   "ERASE",
/*1A*/   "MODE SENSE(06)",
/*1B*/   "STOP/START UNIT",
/*1C*/   "RECEIVE DIAGNOSTIC RESULTS",
/*1D*/   "SEND DIAGNOSTIC",
/*1E*/   "PREVENT/ALLOW MEDIUM REMOVAL",
/*1F*/   undefined,
/*20*/   vendor_specific,
/*21*/   vendor_specific,
/*22*/   vendor_specific,
/*23*/   "READ FORMAT CAPACITIES",
/*24*/   "SET WINDOW",
/*25*/   "READ CAPACITY",
/*26*/   vendor_specific,
/*27*/   vendor_specific,
/*28*/   "READ(10)",
/*29*/   "READ GENERATION",
/*2A*/   "WRITE(10)",
/*2B*/   "SEEK(10)",
/*2C*/   "ERASE(10)",
/*2D*/   "READ UPDATED BLOCK",
/*2E*/   "WRITE AND VERIFY(10)",
/*2F*/   "VERIFY(10)",
/*30*/   "SEARCH DATA HIGH(10)",
/*31*/   "SEARCH DATA EQUAL(10)",
/*32*/   "SEARCH DATA LOW(10)",
/*33*/   "SET LIMITS(10)",
/*34*/   "PRE-FETCH",
/*35*/   "SYNCHRONIZE CACHE",
/*36*/   "LOCK/UNLOCK CACHE",
/*37*/   "READ DEFECT DATA(10)",
/*38*/   "MEDIUM SCAN",
/*39*/   "COMPARE",
/*3A*/   "COPY AND VERIFY",
/*3B*/   "WRITE BUFFER",
/*3C*/   "READ BUFFER",
/*3D*/   "UPDATE BLOCK",
/*3E*/   "READ LONG",
/*3F*/   "WRITE LONG",
/*40*/   "CHANGE DEFINITION",
/*41*/   "WRITE SAME",
/*42*/   "READ SUB-CHANNEL",
/*43*/   "READ TOC/PMA/ATIP",
/*44*/   "READ HEADER",
/*45*/   "PLAY AUDIO(10)",
/*46*/   "GET CONFIGURATION",
/*47*/   "PLAY AUDIO MSF",
/*48*/   "PLAY AUDIO TRACK INDEX",
/*49*/   "PLAY TRACK RELATIVE(10)",
/*4A*/   "GET EVENT/STATUS NOTIFICATION",
/*4B*/   "PAUSE/RESUME",
/*4C*/   "LOG SELECT",
/*4D*/   "LOG SENSE",
/*4E*/   "STOP PLAY/SCAN",
/*4F*/   undefined,
/*50*/   undefined,
/*51*/   "READ DISC INFORMATION",
/*52*/   "READ TRACK/RZONE INFORMATION",
/*53*/   "RESERVE TRACK",
/*54*/   "SEND OPC INFORMATION",
/*55*/   "MODE SELECT(10)",
/*56*/   "RESERVE(10)",
/*57*/   "RELEASE(10)",
/*58*/   "REPAIR TRACK",
/*59*/   "READ MASTER CUE",
/*5A*/   "MODE SENSE(10)",
/*5B*/   "CLOSE TRACK/SESSION",
/*5C*/   "READ BUFFER CAPACITY",
/*5D*/   "SEND CUE SHEET",
};

const char* scsi_command_names_A0_BF[] = {
/*A0*/   "REPORT LUNS",
/*A1*/   "BLANK",
/*A2*/   "VERIFY(12) / SEND EVENT",
/*A3*/   "SEND KEY",
/*A4*/   "REPORT KEY",
/*A5*/   "PLAY AUDIO(12)",
/*A6*/   "LOAD/UNLOAD MEDIUM",
/*A7*/   "SET READ-AHEAD",
/*A8*/   "READ(12)",
/*A9*/   "PLAY TRACK RELATIVE(12)",
/*AA*/   "WRITE(12)",
/*AB*/   undefined,
/*AC*/   "ERASE(12) / GET PERFORMANCE",
/*AD*/   "READ DVD STRUCTURE",
/*AE*/   "WRITE AND VERIFY(12)",
/*AF*/   "VERIFY(12)",
/*B0*/   "SEARCH DATA HIGH(12)",
/*B1*/   "SEARCH DATA EQUAL(12)",
/*B2*/   "SEARCH DATA LOW(12)",
/*B3*/   "SET LIMITS(12)",
/*B4*/   undefined,
/*B5*/   "REQUEST VOLUME ELEMENT ADDRESS",
/*B6*/   "SEND VOLUME TAG / SET STREAMING",
/*B7*/   "READ DEFECT DATA(12)",
/*B8*/   "READ ELEMENT STATUS",
/*B9*/   "READ CD MSF",
/*BA*/   "SCAN",
/*BB*/   "SET CD SPEED",
/*BC*/   "PLAY CD",
/*BD*/   "MECHANISM STATUS",
/*BE*/   "READ CD",
/*BF*/   "SEND DVD STRUCTURE",
};

const char* srb_status_names[] = {
/*00*/   "SRB_STATUS_PENDING",
/*01*/   "SUCCESS",
/*02*/   "SRB_STATUS_ABORTED",
/*03*/   "SRB_STATUS_ABORT_FAILED",
/*04*/   "ERROR",
/*05*/   "SRB_STATUS_BUSY",
/*06*/   "SRB_STATUS_INVALID_REQUEST",
/*07*/   "SRB_STATUS_INVALID_PATH_ID",
/*08*/   "SRB_STATUS_NO_DEVICE",
/*09*/   "SRB_STATUS_TIMEOUT",
/*0A*/   "SRB_STATUS_SELECTION_TIMEOUT",
/*0B*/   "SRB_STATUS_COMMAND_TIMEOUT",
/*0C*/   0,
/*0D*/   "SRB_STATUS_MESSAGE_REJECTED",
/*0E*/   "SRB_STATUS_BUS_RESET",
/*0F*/   "SRB_STATUS_PARITY_ERROR",
/*10*/   "SRB_STATUS_REQUEST_SENSE_FAILED",
/*11*/   "SRB_STATUS_NO_HBA",
/*12*/   "SRB_STATUS_DATA_OVERRUN",
/*13*/   "SRB_STATUS_UNEXPECTED_BUS_FREE",
/*14*/   "SRB_STATUS_PHASE_SEQUENCE_FAILURE",
/*15*/   "SRB_STATUS_BAD_SRB_BLOCK_LENGTH",
/*16*/   "SRB_STATUS_REQUEST_FLUSHED",
/*17*/   0,
/*18*/   0,
/*19*/   0,
/*1A*/   0,
/*1B*/   0,
/*1C*/   0,
/*1D*/   0,
/*1E*/   0,
/*1F*/   0,
/*20*/   "SRB_STATUS_INVALID_LUN",
/*21*/   "SRB_STATUS_INVALID_TARGET_ID",
/*22*/   "SRB_STATUS_BAD_FUNCTION",
/*23*/   "SRB_STATUS_ERROR_RECOVERY",
/*24*/   "SRB_STATUS_NOT_POWERED"
};

const char* target_status_names[] = {
/*00*/   "GOOD",
/*02*/   "CHECK CONDITION",
/*04*/   "CONDITION MET",
/*06*/   0,
/*08*/   "BUSY",
/*0A*/   0,
/*0C*/   0,
/*0E*/   0,
/*10*/   "INTERMEDIATE",
/*12*/   0,
/*14*/   "INTERMEDIATE COND MET",
/*16*/   0,
/*18*/   "RESERVATION CONFLICT",
/*1A*/   0,
/*1C*/   0,
/*1E*/   0,
/*20*/   0,
/*22*/   "COMMAND TERMINATED",
/*24*/   0,
/*26*/   0,
/*28*/   "QUEUE FULL"
};

const char* sense_key_names[] = {
   "NO SENSE",
   "RECOVERED ERROR",
   "NOT READY",
   "MEDIUM ERROR",
   "HARDWARE ERROR",
   "ILLEGAL REQUEST",
   "UNIT ATTENTION",
   "DATA PROTECT",
   "BLANK CHECK",
   "VENDOR-SPECIFIC",
   "COPY ABORTED",
   "ABORTED COMMAND",
   "EQUAL",
   "VOLUME OVERFLOW",
   "MISCOMPARE",
   "RESERVED"
};

struct { scsi_result_t result; const char* text; }
result_code_names[] = {
  { 0x00000, "NO ADDITIONAL SENSE INFORMATION" },
  { 0x00001, "FILEMARK DETECTED" },
  { 0x00002, "END-OF-PARTITION/MEDIUM DETECTED" },
  { 0x00003, "SETMARK DETECTED" },
  { 0x00004, "BEGINNING-OF-PARTITION/MEDIUM DETECTED" },
  { 0x00005, "END-OF-DATA DETECTED" },
  { 0x00011, "AUDIO PLAY OPERATION IN PROGRESS" },
  { 0x00012, "AUDIO PLAY OPERATION PAUSED" },
  { 0x00013, "AUDIO PLAY OPERATION SUCCESSFULLY COMPLETED" },
  { 0x00014, "AUDIO PLAY OPERATION STOPPED DUE TO ERROR" },
  { 0x00015, "NO CURRENT AUDIO STATUS TO RETURN" },
  { 0x00016, "OPERATION IN PROGRESS" },
  { 0x10B00, "WARNING" },
  { 0x10B01, "WARNING - SPECIFIED TEMPERATURE EXCEEDED" },
  { 0x10B02, "WARNING - ENCLOSURE DEGRADED" },
  { 0x10C0A, "WRITE ERROR - PADDING BLOCKS ADDED" },
  { 0x11700, "RECOVERED DATA WITH NO ERROR CORRECTION APPLIED" },
  { 0x11701, "RECOVERED DATA WITH RETRIES" },
  { 0x11702, "RECOVERED DATA WITH POSITIVE HEAD OFFSET" },
  { 0x11703, "RECOVERED DATA WITH NEGATIVE HEAD OFFSET" },
  { 0x11704, "RECOVERED DATA WITH RETRIES AND/OR CIRC APPLIED" },
  { 0x11705, "RECOVERED DATA USING PREVIOUS SECTOR ID" },
  { 0x11706, "RECOVERED DATA WITHOUT ECC - DATA AUTO-REALLOCATED" },
  { 0x11707, "RECOVERED DATA WITHOUT ECC - RECOMMEND REASSIGNMENT" },
  { 0x11708, "RECOVERED DATA WITHOUT ECC - RECOMMEND REWRITE" },
  { 0x11709, "RECOVERED DATA WITHOUT ECC - DATA REWRITTEN" },
  { 0x11800, "RECOVERED DATA WITH ERROR CORRECTION APPLIED" },
  { 0x11801, "RECOVERED DATA WITH ERROR CORR. & RETRIES APPLIED" },
  { 0x11802, "RECOVERED DATA - DATA AUTO-REALLOCATED" },
  { 0x11803, "RECOVERED DATA WITH CIRC" },
  { 0x11804, "RECOVERED DATA WITH L-EC" },
  { 0x11805, "RECOVERED DATA - RECOMMEND REASSIGNMENT" },
  { 0x11806, "RECOVERED DATA - RECOMMEND REWRITE" },
  { 0x11807, "RECOVERED DATA WITH ECC - DATA REWRITTEN" },
  { 0x11808, "RECOVERED DATA WITH LINKING" },
  { 0x11E00, "RECOVERED ID WITH ECC CORRECTION" },
  { 0x13700, "ROUNDED PARAMETER" },
  { 0x15D00, "FAILURE PREDICTION THRESHOLD EXCEEDED - PREDICTED LOGICAL UNIT FAILURE" },
  { 0x15D01, "FAILURE PREDICTION THRESHOLD EXCEEDED - PREDICTED MEDIA FAILURE" },
  { 0x15D02, "LOGICAL UNIT FAILURE PREDICTION THRESHOLD EXCEEDED" },
  { 0x15DFF, "FAILURE PREDICTION THRESHOLD EXCEEDED (FALSE)" },
  { 0x16A00, "INFORMATIONAL, REFER TO LOG" },
  { 0x17301, "POWER CALIBRATION AREA ALMOST FULL" },
  { 0x17306, "PROGRAM MEMORY AREA/RMA IS (ALMOST) FULL" },
  { 0x20400, "LOGICAL UNIT NOT READY, CAUSE NOT REPORTABLE" },

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -