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 パラメーターで渡されるメディア識別子とドライブ識別子の数。 lpMediaIdlpDriveId は、等しい長さの配列の最初の要素を指す必要があることに注意してください。

[in] dwOptions

オプション。 このパラメーターには、次の 1 つ以上の値を指定できます。

意味
NTMS_MOUNT_SPECIFIC_DRIVE
lpDriveId パラメーターで指定された特定のドライブにメディアをマウントします。
NTMS_MOUNT_READ
読み取りアクセス用にメディアをマウントします。 読み取り専用メディアをマウントするには、この値を使用します。
NTMS_MOUNT_WRITE
書き込みアクセス用にメディアをマウントします。 RSM が Completed メディアをマウントできないようにするには、このフラグを使用します。 この値は、読み取り/書き込みアクセスのNTMS_MOUNT_READと組み合わせることができます。

このフラグが選択されている場合、RSM は Completed メディアをマウントできません。

NTMS_MOUNT_ERROR_NOT_AVAILABLE
メディアまたはドライブが使用できない場合、この値はエラーを返します。
NTMS_MOUNT_ERROR_OFFLINE
オフライン メディアをマウントするためのオペレーター要求を発行しないでください。 指定されたメディアが現在ライブラリに存在しない場合は、エラーを返します。

[in] dwPriority

ドライブへのアクセスを許可するために RSM によって使用されるマウントの優先順位。 優先度の範囲は -15 から 15 で、優先度は 15、既定値は 0 です。 このパラメーターは、次のいずれかの定数を受け取ることもできます。 特別なマウント優先度が必要な場合を除き、アプリケーションはNTMS_PRIORITY_NORMALを渡す必要があります。

意味
NTMS_PRIORITY_NORMAL
タイム クリティカルではないマウント。
NTMS_PRIORITY_LOW
バックグラウンド アクティビティとして実行されるマウント。
NTMS_PRIORITY_HIGH
タイム クリティカルなマウント。
NTMS_PRIORITY_LOWEST
最も優先度の低いマウント。
NTMS_PRIORITY_HIGHEST
最も優先度の高いマウント。

[in] dwTimeout

指定したメディアをマウントできる最大時間 (ミリ秒単位)。 マウントが完了するまで待機するには、このパラメーターを INFINITE に設定します。

lpMountInformation

このパラメーターは予約されており、 NULL にする必要があります。

戻り値

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

意味
ERROR_ACCESS_DENIED
メディアを含むメディア プールまたはライブラリへのNTMS_USE_ACCESSは拒否されます。他のセキュリティ エラーも可能ですが、セキュリティ サブシステム エラーを示します。
ERROR_BUSY
メディアまたはドライブがビジー状態です。
ERROR_CANCELLED
CloseNtmsSession 関数によって要求が取り消されました。
ERROR_DATABASE_FAILURE
データベースにアクセスできないか、破損しています。
ERROR_DATABASE_FULL
データベースがいっぱいです。
ERROR_DRIVE_MEDIA_MISMATCH
指定されたメディアとドライブが同じライブラリにありません。
ERROR_INVALID_DRIVE
指定されたドライブの少なくとも 1 つが無効です。
ERROR_INVALID_LIBRARY
ドライブまたはメディアを含むライブラリが無効です。
ERROR_INVALID_MEDIA
指定された 1 つ以上のメディアが無効であるか、メディアの一覧に重複するメディア ID があります。
ERROR_INVALID_STATE
マウント中に予期しないメディアまたはデバイスの状態が発生しました。
ERROR_MEDIA_OFFLINE
メディアはオフラインであり、マウントできません。
ERROR_NOT_ENOUGH_MEMORY
処理中にメモリ割り当てエラーが発生しました。
ERROR_REQUEST_REFUSED
ユーザーは、ユーザー インターフェイスを使用して要求を取り消しました。
ERROR_RESOURCE_DISABLED
マウントを実行するために必要な 1 つ以上のリソースが無効になっています。
ERROR_SUCCESS
メディアがマウントされ、使用できる状態になっています。
ERROR_TIMEOUT
1 つ以上の必要なリソースの取得中にタイムアウト イベントが期限切れになりました。 マウント要求が取り消されました。
ERROR_WRITE_PROTECT
メディアの状態が 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

こちらもご覧ください

Media Services 関数