次の方法で共有


CM_Request_Device_Eject_ExW関数 (cfgmgr32.h)

[Windows 8とWindows Server 2012以降、この関数は非推奨となりました。 代わりに CM_Request_Device_Eject を使用してください。]

CM_Request_Device_Eject_Ex関数は、デバイスがリムーバブルである場合に、安全な削除のためにローカルまたはリモート デバイス インスタンスを準備します。 デバイスを物理的に取り出すことができる場合は、 になります。

構文

CMAPI CONFIGRET CM_Request_Device_Eject_ExW(
  [in]            DEVINST        dnDevInst,
  [out, optional] PPNP_VETO_TYPE pVetoType,
  [out, optional] LPWSTR         pszVetoName,
  [in]            ULONG          ulNameLength,
  [in]            ULONG          ulFlags,
  [in, optional]  HMACHINE       hMachine
);

パラメーター

[in] dnDevInst

hMachine によって提供されるマシン ハンドルにバインドされている、呼び出し元から提供されるデバイス インスタンス ハンドル。

[out, optional] pVetoType

(省略可能)。) NULL でない場合、これは削除要求が失敗した場合に、エラーの理由を示す PNP_VETO_TYPE型指定の値を受け取る場所を指します。

[out, optional] pszVetoName

(省略可能)。) NULL でない場合、これはテキスト文字列を受け取る文字列バッファーへの呼び出し元から提供されるポインターです。 この文字列が提供する情報の種類は、 pVetoType によって受け取られた値によって異なります。 これらの文字列の詳細については、「 PNP_VETO_TYPE」を参照してください。

[in] ulNameLength

(省略可能)。) pszVetoName によって提供される文字列バッファーの長さを表す呼び出し元指定の値。 これは MAX_PATH に設定する必要があります。

[in] ulFlags

使用されていません。

[in, optional] hMachine

呼び出し元が指定したデバイス インスタンス ハンドルがバインドされている呼び出し元指定のマシン ハンドル。

メモこの機能は削除されたため、この関数を使用してリモート マシンにアクセスすることは、Windows 8 および Windows Server 2012 以降ではサポートされていません。
 

戻り値

操作が成功した場合、関数は CR_SUCCESSを返します。 それ以外の場合は、 Cfgmgr32.h で定義されているCR_プレフィックス付きのエラー コードのいずれかを返します。

注釈

pszVetoNameNULL の場合、PnP マネージャーは、デバイスが削除されたことを示すメッセージをユーザーに表示します。要求が失敗した場合は、エラーの理由を特定します。 pszVetoNameNULL でない場合、PnP マネージャーはメッセージを表示しません。 (ただし、Microsoft Windows 2000 の場合のみ、デバイスのCM_DEVCAP_DOCKDEVICE機能が設定されている場合、 pszVetoNameNULL でない場合でも PnP マネージャーはメッセージを表示します。

リモート マシンの場合、この関数は "dock" デバイス インスタンスに対してのみ機能します。 つまり、関数は、コンピューターのドッキングを解除するためにリモートでのみ使用できます。 その場合、呼び出し元には SeUndockPrivilege が必要です。

CM_Request_Eject_Exの呼び出し元では、次のように SeUndockPrivilege または SeLoadDriverPrivilege が必要になることがあります。

  • デバイスのCM_DEVCAP_DOCKDEVICE機能が設定されている (デバイスが "ドック" デバイスである) 場合、呼び出し元は SeUndockPrivilege を持っている必要があります。 (SeLoadDriverPrivilege は必要ありません)。
  • デバイスのCM_DEVCAP_DOCKDEVICE機能が設定されていない場合 (デバイスは "ドック" デバイスではありません)、呼び出 元プロセスが対話型ではないか、または物理コンソール (リモート ターミナル サービス セッションなど) に接続されていないセッションのマルチユーザー環境で実行されている場合、この関数の呼び出し元は SeLoadDriverPrivilege を持っている必要があります。
(特権については、Microsoft Windows SDKドキュメントを参照してください)。

ローカル コンピューターまたはリモート コンピューターにバインドされているデバイス インスタンス ハンドルの使用については、「 CM_Get_Child_Ex」を参照してください。

リモート マシンにアクセスするための機能は、Windows 8およびWindows Server 2012以降のオペレーティング システムで削除されているため、これらのバージョンの Windows で実行している場合はリモート マシンにアクセスできません。

要件

要件
サポートされている最小のクライアント Microsoft Windows 2000 以降のバージョンの Windows で使用できます。
対象プラットフォーム デスクトップ
Header cfgmgr32.h (Cfgmgr32.h を含む)
Library Cfgmgr32.lib

こちらもご覧ください

CM_Get_Child_Ex

CM_Query_And_Remove_SubTree

CM_Query_And_Remove_SubTree_Ex

CM_Request_Device_Eject