CM_Request_Device_EjectA関数 (cfgmgr32.h)
CM_Request_Device_Eject関数は、デバイスがリムーバブルである場合に、安全な削除のためにローカル デバイス インスタンスを準備します。 デバイスを物理的に取り出すことができる場合は、 になります。
構文
CMAPI CONFIGRET CM_Request_Device_EjectA(
[in] DEVINST dnDevInst,
[out, optional] PPNP_VETO_TYPE pVetoType,
[out, optional] LPSTR pszVetoName,
[in] ULONG ulNameLength,
[in] ULONG ulFlags
);
パラメーター
[in] dnDevInst
ローカル コンピューターにバインドされている呼び出し元が指定したデバイス インスタンス ハンドル。
[out, optional] pVetoType
(省略可能)。) NULL でない場合、これは、削除要求が失敗した場合に、エラーの理由を示す PNP_VETO_TYPE型指定の値を受け取る場所を指します。
[out, optional] pszVetoName
(省略可能)。) NULL でない場合、これはテキスト文字列を受け取る文字列バッファーへの呼び出し元指定のポインターです。 この文字列が提供する情報の種類は、 pVetoType によって受け取られた値によって異なります。 これらの文字列の詳細については、「 PNP_VETO_TYPE」を参照してください。
[in] ulNameLength
(省略可能)。) pszVetoName によって提供される文字列バッファーの長さを表す呼び出し元指定の値。 これはMAX_PATHに設定する必要があります。
[in] ulFlags
使用されていません。
戻り値
操作が成功した場合、関数はCR_SUCCESSを返します。 それ以外の場合は、 Cfgmgr32.h で定義されているCR_プレフィックス付きのエラー コードのいずれかを返します。
注釈
pszVetoName が NULL の場合、PnP マネージャーは、デバイスが削除されたことを示すメッセージをユーザーに表示するか、要求が失敗した場合にエラーの理由を特定します。 pszVetoName が NULL でない場合、PnP マネージャーはメッセージを表示しません。 (ただし、Microsoft Windows 2000 の場合のみ、デバイスのCM_DEVCAP_DOCKDEVICE機能が設定されている場合、 pszVetoName が NULL でない場合でも、PnP マネージャーはメッセージを表示します。
CM_Request_Device_Ejectの呼び出し元では、次のように SeUndockPrivilege または SeLoadDriverPrivilege が必要な場合があります。
- デバイスのCM_DEVCAP_DOCKDEVICE機能が設定されている (デバイスが "dock" デバイスである) 場合、呼び出し元は SeUndockPrivilege を持っている必要があります。 (SeLoadDriverPrivilege は必要ありません。
- デバイスのCM_DEVCAP_DOCKDEVICE機能が設定されていない場合 (デバイスは "ドック" デバイスではありません)、呼び出 し プロセスが対話型ではないか、物理コンソールに接続されていないセッション (リモート ターミナル サービス セッションなど) でマルチユーザー環境で実行されている場合、この関数の呼び出し元は SeLoadDriverPrivilege を持っている必要があります。
ローカル コンピューターにバインドされているデバイス インスタンス ハンドルの使用については、「 CM_Get_Child」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Microsoft Windows 2000 以降のバージョンの Windows で使用できます。 |
対象プラットフォーム | デスクトップ |
Header | cfgmgr32.h (Cfgmgr32.h を含む) |
Library | Cfgmgr32.lib |
こちらもご覧ください
CM_Get_Child
CM_Query_And_Remove_SubTree
CM_Query_And_Remove_SubTree_Ex
CM_Request_Device_Eject_Ex