InjectNtmsMedia 関数 (ntmsapi.h)

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

InjectNtmsMedia 関数を使用すると、指定したライブラリのポートにメディアを挿入できます。 ライブラリがビジー状態の場合、RSM は InjectNtmsMedia をキューに入れ、成功を返します。

構文

DWORD InjectNtmsMedia(
  [in]  HANDLE      hSession,
  [in]  LPNTMS_GUID lpLibraryId,
  [out] LPNTMS_GUID lpInjectOperation,
  [in]  DWORD       dwAction
);

パラメーター

[in] hSession

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

[in] lpLibraryId

ライブラリ オブジェクトの一意識別子。

[out] lpInjectOperation

ライブラリの挿入操作の GUID。 dwAction がNTMS_INJECT_STARTの場合、このパラメーターは操作の GUID を受け取ります。 dwAction がNTMS_INJECT_STOP場合、操作を停止するには、このパラメーターを GUID に設定する必要があります。

[in] dwAction

このパラメーターには、次の値のいずれかを指定できます。

意味
NTMS_INJECT_START
ポートを使用して挿入操作を開始します。 タイムアウト イベントが発生するか、NTMS_INJECT_STOPを使用して関数が再度呼び出されるまで、メディアが繰り返し挿入されます。
NTMS_INJECT_STOP
タイムアウト イベントのラップの前に挿入プロセスを終了します。
NTMS_INJECT_RETRACT
オペレーターがそこに配置したメディアの挿入/取り出しポートとチェックを取り消すようライブラリに指示します。
NTMS_INJECT_START_MANY
挿入/取り出しポートを継続的に開き、オペレーターがそこに配置したメディアをチェックするように指示します。 メディアが見つかった場合は、挿入/取り出しポートが再び開き、より多くのメディアを受信します。

戻り値

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

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

注釈

この関数は、挿入要求がキューに登録されるとすぐにアプリケーションに戻ります。

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

この関数は、オフライン ライブラリでは使用できません。

[挿入] は、メディアをライブラリに挿入するプロセスを開始します。 ライブラリはNTMS_IEPORT オブジェクトの機能によって異なるため、各デバイスの動作が若干異なる場合があります。 次の手順では、通常、RSM が挿入を処理する方法について説明します。

ライブラリにメディアを挿入するには

  1. NTMS_IEPORTを許可/ロック解除/拡張します。
  2. 完全なNTMS_IEPORT、取り消されたNTMS_IEPORT、挿入の停止コマンド、またはタイムアウト値をポーリングします。 これらのいずれかが発生していない場合は、引き続き待機します。 (マルチカートリッジの挿入/取り出しポートは、完全な状態ではスキャンされません。
  3. 上記のいずれかのイベントが発生すると、NTMS_IEPORTがロックされ、NTMS_IEPORT内の各メディアがスロットに移動され、メディアごとに識別メディア コマンドがキューに入れられます。
NTMS_IEPORT オブジェクト内のメディアに十分なスロットがない場合、メディアは NTMS_IEPORT オブジェクトに残り、メディアがライブラリから削除されるようにオペレーター要求が投稿されます。

空きスロットがない場合、 InjectNtmsMedia 関数はエラーを受け取ります。

要件

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

こちらもご覧ください

EjectNtmsMedia

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