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_CONTROL_ACCESSは拒否されます。 その他のセキュリティ エラーも考えられますが、セキュリティ サブシステム エラーを示します。 |
|
データベースにアクセスできないか、破損しています。 |
|
データベースがいっぱいです。 |
|
ライブラリが無効になっています。 |
|
セッション ID が見つからないか、無効です。 |
|
無効な操作 ID に対して Stop アクションが実行されました。 |
|
ライブラリ ID または操作 ID ポインターがありません。 |
|
ライブラリ ID は、メディアを取り出すことができないオフライン ライブラリを参照します。 |
|
処理中に割り当てエラーが発生しました。 |
|
挿入はキューに入れられます。 |
注釈
この関数は、挿入要求がキューに登録されるとすぐにアプリケーションに戻ります。
InjectNtmsMedia 関数で指定されたライブラリにポートがない場合は、AccessNtmsLibraryDoor 関数を使用してメディアを挿入および取り出します。
この関数は、オフライン ライブラリでは使用できません。
[挿入] は、メディアをライブラリに挿入するプロセスを開始します。 ライブラリはNTMS_IEPORT オブジェクトの機能によって異なるため、各デバイスの動作が若干異なる場合があります。 次の手順では、通常、RSM が挿入を処理する方法について説明します。
ライブラリにメディアを挿入するには
- NTMS_IEPORTを許可/ロック解除/拡張します。
- 完全なNTMS_IEPORT、取り消されたNTMS_IEPORT、挿入の停止コマンド、またはタイムアウト値をポーリングします。 これらのいずれかが発生していない場合は、引き続き待機します。 (マルチカートリッジの挿入/取り出しポートは、完全な状態ではスキャンされません。
- 上記のいずれかのイベントが発生すると、NTMS_IEPORTがロックされ、NTMS_IEPORT内の各メディアがスロットに移動され、メディアごとに識別メディア コマンドがキューに入れられます。
空きスロットがない場合、 InjectNtmsMedia 関数はエラーを受け取ります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | ntmsapi.h |
Library | Ntmsapi.lib |
[DLL] | Ntmsapi.dll |