EjectNtmsMedia 関数 (ntmsapi.h)

[リムーバブル 記憶域マネージャー は、Windows 7 および Windows Server 2008 R2 以降では使用できません。

EjectNtmsMedia 関数は、現在のライブラリのポートから指定されたメディアを取り出します。 ライブラリがビジー状態の場合、RSM は EjectNtmsMedia をキューに入れ、成功を返します。

構文

DWORD EjectNtmsMedia(
  [in]      HANDLE      hSession,
  [in]      LPNTMS_GUID lpMediaId,
  [in, out] LPNTMS_GUID lpEjectOperation,
  [in]      DWORD       dwAction
);

パラメーター

[in] hSession

OpenNtmsSession 関数によって返されるセッションを処理します。

[in] lpMediaId

物理メディアの一意識別子 (PMID)。

[in, out] lpEjectOperation

取り出しプロセス ライブラリ要求の GUID。 dwAction がNTMS_EJECT_START場合、このパラメーターは操作の GUID を受け取ります。 dwAction がNTMS_EJECT_STOP場合、操作を停止するには、このパラメーターを GUID に設定する必要があります。 このパラメーターは、NTMS_EJECT_QUEUEでは使用されません。

[in] dwAction

実行するアクション。 このパラメーターには、次の値のいずれかを指定できます。

意味
NTMS_EJECT_START
ポートを使用して取り出し操作を開始します。 タイムアウト イベントが発生するか、関数が NTMS_EJECT_STOP で再度呼び出されるまで、指定されたメディアが取り出されます。 タイムアウト値はライブラリ オブジェクトで指定され、ライブラリ内のすべての出力に適用されます。
NTMS_EJECT_STOP
タイムアウト イベントが経過する前に 、lpEjectOperation で指定された排出プロセスを終了します。
NTMS_EJECT_QUEUE
指定したメディアをキューに入れます。 マルチスロット NTMS_IEPORT オブジェクトのメディアをグループ化するために使用されます。

戻り値

この関数は、次のいずれかの値を返します。

意味
ERROR_ACCESS_DENIED
ライブラリへのNTMS_CONTROL_ACCESSは拒否されます。 その他のセキュリティ エラーも考えられますが、セキュリティ サブシステム エラーを示します。
ERROR_BUSY
NTMS_IEPORT オブジェクトで使用可能なスロットよりも多くのメディアがキューに入れられました。
ERROR_DATABASE_FAILURE
データベースにアクセスできないか、破損しています。
ERROR_DATABASE_FULL
データベースがいっぱいです。
ERROR_DEVICE_NOT_AVAILABLE
ライブラリが無効になっています。
ERROR_INVALID_HANDLE
セッション ID が見つからないか、無効です。
ERROR_INVALID_OPERATION
無効な操作 ID に対して停止が実行されました。
ERROR_INVALID_PARAMETER
ライブラリ ID または操作 ID ポインターがありません。
ERROR_LIBRARY_OFFLINE
ライブラリ ID は、メディアを取り出すことができないオフライン ライブラリを参照します。
ERROR_MEDIA_NOT_AVAILABLE
メディアが無効になっています。
ERROR_NOT_ENOUGH_MEMORY
処理中に割り当てエラーが発生しました。
ERROR_SUCCESS
取り出しはキューに入れられます。

注釈

EjectNtmsMedia 関数は、取り出し要求がキューに登録されるとすぐにアプリケーションに戻ります。

EjectNtmsMedia 関数を使用して取り出されたメディアは、オフライン ライブラリに移動されるか、データベースから削除されます。 クリーナー カートリッジ、インポート メディア、認識されないメディア、および互換性のないメディアは、取り出されると削除されます。

NTMS_EJECT_QUEUE フラグは、マルチスロット ライブラリへの排出用にマークされたメディアをバンドルまたはバッチするために使用されます。 アプリケーションが必要なすべてのメディアをキューに入れたときに、キュー アクションを使用してメディアをキューに入れます。 アプリケーションは start コマンドを使用して、物理取り出し操作を開始します。 NTMS_IEPORT オブジェクト内のスロットよりも多くのメディアがキューに登録されている場合、 EjectNtmsMedia はERROR_BUSYを返します。 物理取り出し操作を開始するために、アプリケーションは最後のメディア ID または NULL でNTMS_EJECT_STARTを使用できます。

メディアが現在使用されている (マウントされているか開かれている) 場合、この関数はエラーを返します。

ライブラリにポートがない場合は、 AccessNtmsLibraryDoor 関数を使用してメディアを挿入および取り出します。

EjectNtmsMedia 関数は、オフライン ライブラリでは機能しません。

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー ntmsapi.h
Library Ntmsapi.lib
[DLL] Ntmsapi.dll

こちらもご覧ください

InjectNtmsMedia

ライブラリ コントロール関数