共用方式為


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

(Optional.) 如果不是 NULL,這會指向如果移除要求失敗的位置,會收到指出失敗原因 的PNP_VETO_TYPE型別值。

[out, optional] pszVetoName

(Optional.) 如果沒有 NULL,這是接收文字字串之字串串緩衝區的呼叫端提供的指標。 此字串提供的資訊類型取決於 pVetoType 所收到的值。 如需這些字串的相關信息,請參閱 PNP_VETO_TYPE

[in] ulNameLength

(Optional.) Caller 提供的值,代表 pszVetoName 所提供的字串緩衝區長度。 這應該設定為 MAX_PATH。

[in] ulFlags

未使用。

[in, optional] hMachine

呼叫端提供的機器句柄,呼叫端提供的裝置實例句柄會系結至其中。

注意從 Windows 8 和 Windows Server 2012 開始,不支援使用此函式來存取遠端計算機,因為此功能已移除。
 

傳回值

如果作業成功,函式會傳回CR_SUCCESS。 否則,它會傳回 Cfgmgr32.h 中定義的其中一個CR_前置錯誤碼。

備註

如果 pszVetoNameNULL,則 PnP 管理員會顯示訊息給使用者,指出裝置已移除,或如果要求失敗,請識別失敗的原因。 如果 pszVetoName 不是 NULL,則 PnP 管理員不會顯示訊息。 不過, (請注意,只有 Microsoft Windows 2000 的 PnP 管理員才會顯示訊息,即使 pszVetoName 不是 NULL,如果裝置的CM_DEVCAP_DOCKDEVICE功能已設定。)

對於遠端電腦,此函式僅適用於「停駐」裝置實例。 也就是說,函式只能從遠端使用來取消鎖定計算機。 在此情況下,呼叫端必須具有 SeUndockPrivilege

CM_Request_Eject_Ex呼叫端有時需要 SeUndockPrivilegeSeLoadDriverPrivilege,如下所示:

  • 如果裝置的CM_DEVCAP_DOCKDEVICE功能設定 (裝置是「停駐」裝置) ,呼叫端必須具有 SeUndockPrivilege。 不需要 (SeLoadDriverPrivilege 。)
  • 如果未設定裝置的CM_DEVCAP_DOCKDEVICE功能, (裝置不是「停駐」裝置) , 而且 如果呼叫程式不是互動式的,或是在未連結至實體控制台的會話中的多用戶環境中執行, (例如遠端終端機服務會話) 呼叫者必須具有 SeLoadDriverPrivilege
(許可權說明於 Microsoft Windows SDK documentation.)

如需使用系結至本機或遠端電腦的裝置實例句柄的相關信息,請參閱 CM_Get_Child_Ex

Windows 8 和 Windows Server 2012 和更新版本的作業系統中已移除存取遠端電腦的功能,因此您無法在這些版本的 Windows 上執行時存取遠端電腦。

規格需求

需求
最低支援的用戶端 可在 Microsoft Windows 2000 和更新版本的 Windows 中使用。
目標平台 桌面
標頭 cfgmgr32.h (包含 Cfgmgr32.h)
程式庫 Cfgmgr32.lib

另請參閱

CM_Get_Child_Ex

CM_Query_And_Remove_SubTree

CM_Query_And_Remove_SubTree_Ex

CM_Request_Device_Eject