Compartilhar via


função CM_Request_Device_EjectW (cfgmgr32.h)

A função CM_Request_Device_Eject prepara uma instância de dispositivo local 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_EjectW(
  [in]            DEVINST        dnDevInst,
  [out, optional] PPNP_VETO_TYPE pVetoType,
  [out, optional] LPWSTR         pszVetoName,
  [in]            ULONG          ulNameLength,
  [in]            ULONG          ulFlags
);

Parâmetros

[in] dnDevInst

Identificador de instância de dispositivo fornecido pelo chamador associado ao computador local.

[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.

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

Os chamadores de CM_Request_Device_Eject à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 de vários usuários 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 ao computador local, consulte CM_Get_Child.

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

CM_Query_And_Remove_SubTree

CM_Query_And_Remove_SubTree_Ex

CM_Request_Device_Eject_Ex