Partager via


CM_Request_Device_Eject_ExW, fonction (cfgmgr32.h)

[À compter de Windows 8 et Windows Server 2012, cette fonction a été déconseillée. Utilisez CM_Request_Device_Eject à la place.]

La fonction CM_Request_Device_Eject_Ex prépare un appareil local ou distant instance pour une suppression sécurisée, si l’appareil est amovible. Si l’appareil peut être éjecté physiquement, il le sera.

Syntaxe

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

Paramètres

[in] dnDevInst

Le handle de instance d’appareil fourni par l’appelant qui est lié au handle de machine fourni par hMachine.

[out, optional] pVetoType

(Facultatif.) Si ce n’est pas null, cela pointe vers un emplacement qui, si la demande de suppression échoue, reçoit une valeur de type PNP_VETO_TYPE indiquant la raison de l’échec.

[out, optional] pszVetoName

(Facultatif.) Si ce n’est pas null, il s’agit d’un pointeur fourni par l’appelant vers une mémoire tampon de chaîne qui reçoit une chaîne de texte. Le type d’informations fournies par cette chaîne dépend de la valeur reçue par pVetoType. Pour plus d’informations sur ces chaînes, consultez PNP_VETO_TYPE.

[in] ulNameLength

(Facultatif.) Valeur fournie par l’appelant représentant la longueur de la mémoire tampon de chaîne fournie par pszVetoName. Cette valeur doit être définie sur MAX_PATH.

[in] ulFlags

Non utilisé.

[in, optional] hMachine

Handle de machine fourni par l’appelant auquel le handle de instance d’appareil fourni par l’appelant est lié.

Note L’utilisation de cette fonction pour accéder aux machines distantes n’est pas prise en charge à partir de Windows 8 et Windows Server 2012, car cette fonctionnalité a été supprimée.
 

Valeur retournée

Si l’opération réussit, la fonction retourne CR_SUCCESS. Sinon, elle retourne l’un des codes d’erreur préfixés CR_ définis dans Cfgmgr32.h.

Remarques

Si pszVetoName a la valeur NULL, le gestionnaire PnP affiche un message à l’utilisateur indiquant que l’appareil a été supprimé ou, si la demande a échoué, identifiant la raison de l’échec. Si pszVetoName n’a pas la valeur NULL, le gestionnaire PnP n’affiche pas de message. (Notez, toutefois, que pour Microsoft Windows 2000 uniquement, le gestionnaire PnP affiche un message même si pszVetoName n’a pas la valeur NULL, si la fonctionnalité de CM_DEVCAP_DOCKDEVICE de l’appareil est définie.)

Pour les machines distantes, cette fonction fonctionne uniquement pour les instances d’appareil « dock ». Autrement dit, la fonction ne peut être utilisée qu’à distance pour détacher une machine. Dans ce cas, l’appelant doit avoir SeUndockPrivilege.

Les appelants de CM_Request_Eject_Ex nécessitent parfois SeUndockPrivilege ou SeLoadDriverPrivilege, comme suit :

  • Si la fonctionnalité de CM_DEVCAP_DOCKDEVICE de l’appareil est définie (l’appareil est un appareil « dock »), les appelants doivent avoir SeUndockPrivilege. (SeLoadDriverPrivilege n’est pas obligatoire.)
  • Si la fonctionnalité de CM_DEVCAP_DOCKDEVICE de l’appareil n’est pas définie (l’appareil n’est pas un appareil « dock ») et si le processus appelant n’est pas interactif ou s’exécute dans un environnement multi-utilisateur dans une session non attachée à la console physique (par exemple, une session Terminal Services distante), les appelants de cette fonction doivent avoir SeLoadDriverPrivilege.
(Les privilèges sont décrits dans la documentation Microsoft Windows SDK.)

Pour plus d’informations sur l’utilisation de handles de instance d’appareil liés à un ordinateur local ou distant, consultez CM_Get_Child_Ex.

La fonctionnalité permettant d’accéder aux ordinateurs distants a été supprimée dans Windows 8 et Windows Server 2012 systèmes d’exploitation et versions ultérieures. Vous ne pouvez donc pas accéder aux ordinateurs distants lors de l’exécution sur ces versions de Windows.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Microsoft Windows 2000 et versions ultérieures de Windows.
Plateforme cible Desktop (Expérience utilisateur)
En-tête cfgmgr32.h (inclure Cfgmgr32.h)
Bibliothèque Cfgmgr32.lib

Voir aussi

CM_Get_Child_Ex

CM_Query_And_Remove_SubTree

CM_Query_And_Remove_SubTree_Ex

CM_Request_Device_Eject