MountNtmsMedia 関数 (ntmsapi.h)
[リムーバブル 記憶域マネージャー は、Windows 7 および Windows Server 2008 R2 以降では使用できません。
MountNtmsMedia 関数は、1 つ以上のメディアを同期的にマウントします。
構文
DWORD MountNtmsMedia(
[in] HANDLE hSession,
[in] LPNTMS_GUID lpMediaId,
[in, out] LPNTMS_GUID lpDriveId,
[in] DWORD dwCount,
[in] DWORD dwOptions,
[in] int dwPriority,
[in] DWORD dwTimeout,
LPNTMS_MOUNT_INFORMATION lpMountInformation
);
パラメーター
[in] hSession
OpenNtmsSession 関数によって返されるセッションを処理します。
[in] lpMediaId
論理メディアまたは辺の一意識別子の配列。
[in, out] lpDriveId
lpMediaId パラメーター内のメディアの一覧に対応するドライブ識別子の配列。 この配列は、メディアをマウントするドライブの一覧を指定するか、操作の完了時にメディアがマウントされるドライブの一覧を受け取ります。 以下のNTMS_MOUNT_SPECIFIC_DRIVE値を参照してください。 マウントが完了する前に MountNtmsMedia 関数がタイムアウトした場合、RSM はドライブの一覧を返しません。
[in] dwCount
lpMediaId パラメーターと lpDriveId パラメーターで渡されるメディア識別子とドライブ識別子の数。 lpMediaId と lpDriveId は、等しい長さの配列の最初の要素を指す必要があることに注意してください。
[in] dwOptions
オプション。 このパラメーターには、次の 1 つ以上の値を指定できます。
[in] dwPriority
ドライブへのアクセスを許可するために RSM によって使用されるマウントの優先順位。 優先度の範囲は -15 から 15 で、優先度は 15、既定値は 0 です。 このパラメーターは、次のいずれかの定数を受け取ることもできます。 特別なマウント優先度が必要な場合を除き、アプリケーションはNTMS_PRIORITY_NORMALを渡す必要があります。
[in] dwTimeout
指定したメディアをマウントできる最大時間 (ミリ秒単位)。 マウントが完了するまで待機するには、このパラメーターを INFINITE に設定します。
lpMountInformation
このパラメーターは予約されており、 NULL にする必要があります。
戻り値
この関数は、次のいずれかの値を返します。
値 | 意味 |
---|---|
|
メディアを含むメディア プールまたはライブラリへのNTMS_USE_ACCESSは拒否されます。他のセキュリティ エラーも可能ですが、セキュリティ サブシステム エラーを示します。 |
|
メディアまたはドライブがビジー状態です。 |
|
CloseNtmsSession 関数によって要求が取り消されました。 |
|
データベースにアクセスできないか、破損しています。 |
|
データベースがいっぱいです。 |
|
指定されたメディアとドライブが同じライブラリにありません。 |
|
指定されたドライブの少なくとも 1 つが無効です。 |
|
ドライブまたはメディアを含むライブラリが無効です。 |
|
指定された 1 つ以上のメディアが無効であるか、メディアの一覧に重複するメディア ID があります。 |
|
マウント中に予期しないメディアまたはデバイスの状態が発生しました。 |
|
メディアはオフラインであり、マウントできません。 |
|
処理中にメモリ割り当てエラーが発生しました。 |
|
ユーザーは、ユーザー インターフェイスを使用して要求を取り消しました。 |
|
マウントを実行するために必要な 1 つ以上のリソースが無効になっています。 |
|
メディアがマウントされ、使用できる状態になっています。 |
|
1 つ以上の必要なリソースの取得中にタイムアウト イベントが期限切れになりました。 マウント要求が取り消されました。 |
|
メディアの状態が Completed に設定され、NTMS_MOUNT_WRITE値が指定されました。 |
注釈
MountNtmsMedia 関数は、指定されたメディアをマウントする要求をキューに入れ、dwTimeout パラメーターで指定されたミリ秒単位でマウントが完了するか、エラーが検出されるまで待機します。 dwTimeout の有効期限が切れる前に RSM がマウント操作を完了できない場合、NTMS は要求を取り消してエラーを返します。 指定したメディアがオフライン ライブラリ内にある場合、アプリケーションが長期間ブロックされる可能性があります。 GetNtmsObjectInformation 関数を使用して、指定したメディアの現在の位置を確認できます。 また、NTMS_MOUNT_ERROR_OFFLINE値を使用して、メディアがオフラインのときにオペレーター要求の代わりに即時エラーを生成することもできます。
指定したメディアが使用中の場合、またはドライブが使用できない場合、プロセスはタイムアウト値までブロックし、ERROR_BUSYを返します。 NTMS_MOUNT_ERROR_NOT_AVAILABLE値が指定されている場合、リソース (メディアまたはドライブ) が使用できない場合、関数は即時エラーを返します。
INFINITE のタイムアウト値を使用すると、タイムアウトせずに関数を待機させることができます。 dwTimeout パラメーターに 0 以外のタイムアウト値を指定すると、RSM は lpMediaId で指定されたすべてのメディアがマウントされるまで待機します。 すべてのメディアがマウントされるまでに指定した時間が経過すると、 MountNtmsMedia 関数はエラーを返し、要求を取り消します。 アプリケーションは、返された状態を調べ、必要に応じて要求を再送信できます。
マウントする複数のメディアを 1 回の呼び出しで指定する場合は、指定されたすべてのメディアを 1 つのライブラリに含める必要があります。 指定したメディアのいずれかがオフラインの場合、すべてのメディアがオンラインになるまで、どのメディアもマウントされません。
マウントが完了すると、ドライブの状態 (修正モードや変数モードなど) は定義されません。 アプリケーションでドライブを設定する必要があります。
CloseNtmsSession 関数を使用して、保留中のマウントを取り消すことができます。 既定の動作は、次のとおりです。
- 指定されたメディアがオフラインの場合、RSM はメディアをマウントするためのオペレーター要求をポストし、 MountNtmsMedia 関数は dwTimeout パラメーターで指定された期間待機します。
- 指定されたメディアがオンラインの場合、RSM はマウントを要求します。
- ドライブまたはメディアが使用できない場合、RSM は要求を送信し、 MountNtmsMedia 関数は dwTimeout パラメーターで指定された期間待機します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | ntmsapi.h |
Library | Ntmsapi.lib |
[DLL] | Ntmsapi.dll |