EjectDiskFromSADriveA 関数 (ntmsapi.h)

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

EjectDiskFromSADrive 関数は、スタンドアロンのリムーバブル ドライブにあるメディアを取り出します。

構文

DWORD EjectDiskFromSADriveA(
  [in] LPCSTR lpComputerName,
  [in] LPCSTR lpAppName,
  [in] LPCSTR lpDeviceName,
  [in] HWND   hWnd,
  [in] LPCSTR lpTitle,
  [in] LPCSTR lpMessage,
  [in] DWORD  dwOptions
);

パラメーター

[in] lpComputerName

リムーバブル 記憶域マネージャー (RSM) サーバー名。 このパラメーターが NULL の場合は、現在のコンピューター名が使用されます。

[in] lpAppName

アプリケーションを識別する一意の文字列。 この名前は、リソースとオペレーターの要求を識別します。 このパラメーターは省略可能であり、 NULL である可能性があります。

[in] lpDeviceName

取り出すデバイスの名前。 たとえば、\.\Cdrom0 または \.\PhysicalDriveX (X はアクセスするドライブの番号) です。

[in] hWnd

ユーザー確認用のダイアログ ボックス ウィンドウを処理します。

[in] lpTitle

ユーザー入力を取得するためのダイアログ ボックスに表示されるタイトル。

[in] lpMessage

ユーザー入力を取得するためのメッセージがダイアログ ボックスに表示されます。

[in] dwOptions

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

説明
NTMS_EJECT_START
ポートを使用して取り出し操作を開始します。 タイムアウト イベントが発生するか、関数が NTMS_EJECT_STOP で再度呼び出されるまで、指定されたメディアが取り出されます。 タイムアウト値はライブラリ オブジェクトで指定され、ライブラリ内のすべての出力に適用されます。
NTMS_EJECT_STOP
タイムアウト イベントが経過する前に、排出プロセスを終了します。
NTMS_EJECT_QUEUE
取り出しを非同期にすることを許可します。 関数は、指定されたメディアを排出するためにキューに入れ、次に を返します。
NTMS_EJECT_FORCE
メディアを強制的に取り出します。 たとえば、NTFS はメディアに対してロックを保持でき、このオプションを選択すると、そのロックにもかかわらずメディアが取り出されます。
NTMS_EJECT_IMMEDIATE
メディアを直ちに同期的に取り出します。 関数は、取り出しが完了するまで戻りません。 指定したメディアを取り出し用にキューに入れない。
NTMS_EJECT_ASK_USER
メディアを直ちに同期的に取り出します。 関数は、取り出しが完了するまで戻りません。 指定したメディアを取り出し用にキューに入れない。 取り出し操作が失敗した場合は、操作を取り消すか強制的に実行するようにユーザーに求めます。

戻り値

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

説明
ERROR_ACCESS_DENIED
ライブラリへのNTMS_CONTROL_ACCESSは拒否されます。 その他のセキュリティ エラーも考えられますが、セキュリティ サブシステム エラーを示します。
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 を使用して同じ機能を実現できますが、 EjectDiskFromSADrive は、RSM 名ではなくドライブ名を指定することで、スタンドアロン デバイスからメディアを取り出す便利な方法を提供します。 場合によっては、メディアを取り出すためにメディアのファイルシステムロックを克服する唯一の方法です。

EjectDiskFromSADrive 関数は、NTMS_EJECT_IMMEDIATE オプションが指定されていない限り、取り出し要求がキューに登録されるとすぐにアプリケーション戻ります。

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

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

注意

ntmsapi.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして、EjectDiskFromSADrive を定義します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

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

関連項目

EjectNtmsMedia

InjectNtmsMedia

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