função CM_Request_Device_Eject_ExW (cfgmgr32.h)

[Começando com Windows 8 e Windows Server 2012, essa função foi preterida. Em vez disso, use CM_Request_Device_Eject .]

A função CM_Request_Device_Eject_Ex prepara uma instância de dispositivo local ou remota para remoção segura, se o dispositivo for removível. Se o dispositivo puder ser fisicamente ejetado, ele será.

Sintaxe

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
);

Parâmetros

[in] dnDevInst

Identificador de instância de dispositivo fornecido pelo chamador associado ao identificador do computador fornecido pelo hMachine.

[out, optional] pVetoType

(Opcional.) Se não for NULL, isso apontará para um local que, se a solicitação de remoção falhar, receberá um valor do tipo PNP_VETO_TYPE indicando o motivo da falha.

[out, optional] pszVetoName

(Opcional.) Se não for NULL, esse será um ponteiro fornecido pelo chamador para um buffer de cadeia de caracteres que recebe uma cadeia de caracteres de texto. O tipo de informação que essa cadeia de caracteres fornece depende do valor recebido por pVetoType. Para obter informações sobre essas cadeias de caracteres, consulte PNP_VETO_TYPE.

[in] ulNameLength

(Opcional.) Valor fornecido pelo chamador que representa o comprimento do buffer de cadeia de caracteres fornecido por pszVetoName. Isso deve ser definido como MAX_PATH.

[in] ulFlags

Não usado.

[in, optional] hMachine

Identificador de computador fornecido pelo chamador ao qual o identificador de instância do dispositivo fornecido pelo chamador está associado.

Nota Não há suporte para o uso dessa função para acessar computadores remotos, começando com Windows 8 e Windows Server 2012, pois essa funcionalidade foi removida.
 

Retornar valor

Se a operação for bem-sucedida, a função retornará CR_SUCCESS. Caso contrário, ele retornará um dos códigos de erro prefixados por CR_ definidos em Cfgmgr32.h.

Comentários

Se pszVetoName for NULL, o gerenciador PnP exibirá uma mensagem para o usuário indicando que o dispositivo foi removido ou, se a solicitação falhou, identificando o motivo da falha. Se pszVetoName não for NULL, o gerenciador PnP não exibirá uma mensagem. (No entanto, observe que, somente para o Microsoft Windows 2000, o gerenciador de PnP exibe uma mensagem mesmo que pszVetoName não seja NULL, se a funcionalidade de CM_DEVCAP_DOCKDEVICE do dispositivo estiver definida.)

Para computadores remotos, essa função funciona apenas para instâncias de dispositivo "dock". Ou seja, a função só pode ser usada remotamente para desencaixar um computador. Nesse caso, o chamador deve ter SeUndockPrivilege.

Os chamadores de CM_Request_Eject_Ex às vezes exigem SeUndockPrivilege ou SeLoadDriverPrivilege, da seguinte maneira:

  • Se a funcionalidade de CM_DEVCAP_DOCKDEVICE do dispositivo estiver definida (o dispositivo é um dispositivo "dock"), os chamadores deverão ter SeUndockPrivilege. (SeLoadDriverPrivilege não é necessário.)
  • Se a funcionalidade de CM_DEVCAP_DOCKDEVICE do dispositivo não estiver definida (o dispositivo não é um dispositivo "dock") e se o processo de chamada não for interativo ou estiver em execução em um ambiente multiusuário em uma sessão não anexada ao console físico (como uma sessão remota dos Serviços de Terminal) os chamadores dessa função deverão ter SeLoadDriverPrivilege.
(Os privilégios são descritos na documentação do SDK do Microsoft Windows.)

Para obter informações sobre como usar identificadores de instância de dispositivo associados a um computador local ou remoto, consulte CM_Get_Child_Ex.

A funcionalidade para acessar computadores remotos foi removida em sistemas operacionais Windows 8 e Windows Server 2012 e posteriores, portanto, você não pode acessar computadores remotos durante a execução nessas versões do Windows.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível no Microsoft Windows 2000 e versões posteriores do Windows.
Plataforma de Destino Área de Trabalho
Cabeçalho cfgmgr32.h (inclua Cfgmgr32.h)
Biblioteca Cfgmgr32.lib

Confira também

CM_Get_Child_Ex

CM_Query_And_Remove_SubTree

CM_Query_And_Remove_SubTree_Ex

CM_Request_Device_Eject