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


функция CM_Request_Device_Eject_ExA (cfgmgr32.h)

[Начиная с Windows 8 и Windows Server 2012 эта функция устарела. Вместо этого используйте CM_Request_Device_Eject .]

Функция CM_Request_Device_Eject_Ex подготавливает локальный или удаленный экземпляр устройства к безопасному удалению, если устройство является съемным. Если устройство может быть физически извлечено, это будет.

Синтаксис

CMAPI CONFIGRET CM_Request_Device_Eject_ExA(
  [in]            DEVINST        dnDevInst,
  [out, optional] PPNP_VETO_TYPE pVetoType,
  [out, optional] LPSTR          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_Request_Device_Eject CM_Query_And_Remove_SubTreeCM_Query_And_Remove_SubTree_Ex