função CM_Request_Device_Eject_ExA (cfgmgr32.h)
[A partir do Windows 8 e do 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_ExA(
[in] DEVINST dnDevInst,
[out, optional] PPNP_VETO_TYPE pVetoType,
[out, optional] LPSTR 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 de computador fornecido por 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 de 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.
Valor retornado
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 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 só funciona 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 de "encaixe"), 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 de "encaixe") 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.
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 nos 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
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_SubTreeCM_Query_And_Remove_SubTree_ExCM_Request_Device_Eject