TNB Library
公開メンバ関数 | 全メンバ一覧
CPrimoBurner::CScsi クラス

PrimoBurner SCSI管理クラス [詳解]

#include <TnbPrimoBurnerEngine.h>

公開メンバ関数

 CScsi (PRISCSI::IScsiInterface *P=NULL)
 コンストラクタ [詳解]
 
DWORD GetLastError (void)
 [取得] エラー種取得 [詳解]
 
DWORD GetLastSystemError (void)
 [取得] システムエラーコード取得 [詳解]
 
bool GetSense (PRISCSI::SCSI_COMMAND_SENSE &_sense)
 [取得] センスデータ取得 [詳解]
 
bool IsValid (void) const
 [確認] 有効確認. [詳解]
 
CByteVector Send_Inquiry (DWORD dwTimeout=SCSI_CMD_TIMEOUT_MS_LONG)
 [送信] INQUIRY CDB送信. [詳解]
 
CByteVector Send_ModeSense (BYTE pc, bool boIsDbd=false, DWORD dwTimeout=SCSI_CMD_TIMEOUT_MS_LONG)
 [送信] MODESENSE CDB送信. [詳解]
 
bool SendCommand (const ISequenceCollectionT< BYTE > &cdb, DWORD dwTimeout=SCSI_CMD_TIMEOUT_MS_LONG)
 [送信] CDB送信. [詳解]
 
CByteVector SendCommandWithReadPhase (const ISequenceCollectionT< BYTE > &cdb, int iReadSize, DWORD dwTimeout=SCSI_CMD_TIMEOUT_MS_LONG)
 [送信] CDB送信(読込みフェーズ付). [詳解]
 
bool SendCommandWithWritePhase (const ISequenceCollectionT< BYTE > &cdb, const ISequenceCollectionT< BYTE > &d, DWORD dwTimeout=SCSI_CMD_TIMEOUT_MS_LONG)
 [送信] CDB送信(書込みフェーズ付). [詳解]
 
 ~CScsi (void)
 デストラクタ [詳解]
 

詳解

PrimoBurner SCSI管理クラス

覚え書き
CPrimoBurner::CDevice::CreateScsi() により作成されます。
必要ファイル
TnbPrimoBurnerEngine.h
日付
07/02/02 新規作成
07/02/05 Vectorを使用したメソッドを追加。ModeSenseを追加。
09/08/04 クラス名、構成変更。

TnbPrimoBurnerEngine.h590 行目に定義があります。

構築子と解体子

◆ CScsi()

CScsi ( PRISCSI::IScsiInterface *  P = NULL)

コンストラクタ

引数
PIScsiInterface インスタンスのポインタ。省略すると NULL。

TnbPrimoBurnerEngine.h598 行目に定義があります。

◆ ~CScsi()

~CScsi ( void  )

デストラクタ

TnbPrimoBurnerEngine.h603 行目に定義があります。

関数詳解

◆ GetLastError()

DWORD GetLastError ( void  )

[取得] エラー種取得

覚え書き
得られるエラー種は、システムのものとは異なります。
Send*() メソッド実行結果が 失敗だった時、本メソッドを実行することで詳細がわかります。
戻り値
SCSIINTERFACE_SUCCESS成功。
SCSIINTERFACE_SYSTEM_ERROR失敗の理由は、システムAPIでエラーが出たためです。 ::GetLastError() でシステムエラーコードを取得してください。
SCSIINTERFACE_DEVICE_ERRORデバイスのエラーです。 デバイスの CPrimoBurner::CDevice::GetLastError() を 使い、エラーコードを取得してください。
SCSIINTERFACE_DEVICE_NOT_SETデバイスは設定されていません。
SCSIINTERFACE_INVALID_PARAMETERSパラメータに異常があります。
SCSIINTERFACE_CHECK_SENSEデバイスがセンス状態です。 GetSense() でセンスデータを取得してください。

TnbPrimoBurnerEngine.h733 行目に定義があります。

◆ GetLastSystemError()

DWORD GetLastSystemError ( void  )

[取得] システムエラーコード取得

覚え書き
このメソッドは、 GetLastError()で SCSIINTERFACE_SYSTEM_ERROR が通知された時、使用します。
戻り値
システムエラーコード。

TnbPrimoBurnerEngine.h743 行目に定義があります。

◆ GetSense()

bool GetSense ( PRISCSI::SCSI_COMMAND_SENSE &  _sense)

[取得] センスデータ取得

覚え書き
このメソッドは、 GetLastError()で SCSIINTERFACE_CHECK_SENSE が通知された時、使用します。
引数
[out]_sense取得センスデータ、格納。
戻り値
true成功。
false失敗。

TnbPrimoBurnerEngine.h755 行目に定義があります。

◆ IsValid()

bool IsValid ( void  ) const

[確認] 有効確認.

本インスタンスが 有効(IScsiInterface を持っている)か、確認します。

戻り値
true有効。各メソッドは使えます。
false無効。

TnbPrimoBurnerEngine.h613 行目に定義があります。

◆ Send_Inquiry()

CByteVector Send_Inquiry ( DWORD  dwTimeout = SCSI_CMD_TIMEOUT_MS_LONG)

[送信] INQUIRY CDB送信.

引数
dwTimeoutタイムアウト時間(ms)。省略すると3分が指定されます。
戻り値
Valid状態成功。読み込んだデータを持っています。
Invalid状態false 失敗。 GetLastError() でエラー内容を確認できます。

TnbPrimoBurnerEngine.h705 行目に定義があります。

◆ Send_ModeSense()

CByteVector Send_ModeSense ( BYTE  pc,
bool  boIsDbd = false,
DWORD  dwTimeout = SCSI_CMD_TIMEOUT_MS_LONG 
)

[送信] MODESENSE CDB送信.

引数
pcページコード、および、ページコントロール値。
boIsDbdtrue なら DBDも読み込みます。 省略か false なら 読み込みません。
dwTimeoutタイムアウト時間(ms)。省略すると3分が指定されます。
戻り値
Valid状態成功。読み込んだデータを持っています。
Invalid状態false 失敗。 GetLastError() でエラー内容を確認できます。

TnbPrimoBurnerEngine.h681 行目に定義があります。

◆ SendCommand()

bool SendCommand ( const ISequenceCollectionT< BYTE > &  cdb,
DWORD  dwTimeout = SCSI_CMD_TIMEOUT_MS_LONG 
)

[送信] CDB送信.

引数
cdbCDB。
dwTimeoutタイムアウト時間(ms)。省略すると3分が指定されます。
戻り値
true成功
false失敗。 GetLastError() でエラー内容を確認できます。

TnbPrimoBurnerEngine.h625 行目に定義があります。

◆ SendCommandWithReadPhase()

CByteVector SendCommandWithReadPhase ( const ISequenceCollectionT< BYTE > &  cdb,
int  iReadSize,
DWORD  dwTimeout = SCSI_CMD_TIMEOUT_MS_LONG 
)

[送信] CDB送信(読込みフェーズ付).

引数
cdbCDB。
iReadSize読み込みデータ長(CDBに正しく読み込みデータサイズを指定しておくこと)。
dwTimeoutタイムアウト時間(ms)。省略すると3分が指定されます。
戻り値
Valid状態成功。読み込んだデータを持っています。
Invalid状態false 失敗。 GetLastError() でエラー内容を確認できます。

TnbPrimoBurnerEngine.h639 行目に定義があります。

◆ SendCommandWithWritePhase()

bool SendCommandWithWritePhase ( const ISequenceCollectionT< BYTE > &  cdb,
const ISequenceCollectionT< BYTE > &  d,
DWORD  dwTimeout = SCSI_CMD_TIMEOUT_MS_LONG 
)

[送信] CDB送信(書込みフェーズ付).

引数
cdbCDB。
d書込みデータ(CDBに正しくデータサイズ分を指定しておくこと)。
dwTimeoutタイムアウト時間(ms)。省略すると3分が指定されます。
戻り値
true成功
false失敗。 GetLastError() でエラー内容を確認できます。

TnbPrimoBurnerEngine.h665 行目に定義があります。