次の方法で共有


EjectDiskFromSADriveW 関数 (ntmsapi.h)

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

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

構文

DWORD EjectDiskFromSADriveW(
  [in] LPCWSTR lpComputerName,
  [in] LPCWSTR lpAppName,
  [in] LPCWSTR lpDeviceName,
  [in] HWND    hWnd,
  [in] LPCWSTR lpTitle,
  [in] LPCWSTR 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 [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー ntmsapi.h
ライブラリ Ntmsapi.lib
DLL Ntmsapi.dll

関連項目

EjectNtmsMedia

InjectNtmsMedia

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