Поделиться через


функция 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. В противном случае возвращается один из кодов ошибок с префиксом CR_, определенных в Cfgmgr32.h.

Комментарии

Если pszVetoName имеет значение NULL, диспетчер PnP отображает пользователю сообщение о том, что устройство было удалено, или, если запрос не выполнен, идентифицирует причину сбоя. Если pszVetoName не имеет значение NULL, диспетчер PnP не отображает сообщение. (Обратите внимание, что только для Microsoft Windows 2000 диспетчер PnP отображает сообщение, даже если pszVetoName не равно NULL, если для устройства задана возможность CM_DEVCAP_DOCKDEVICE.)

На удаленных компьютерах эта функция работает только для экземпляров "закрепления" устройства. То есть функцию можно использовать только удаленно для отстыковки компьютера. В этом случае вызывающий объект должен иметь 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.
Целевая платформа Персональный компьютер
Верхняя часть 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