Partager via


fonction CM_Request_Device_Eject_ExA (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 instance d’appareil local ou distant pour la suppression en toute sécurité, si l’appareil est amovible. Si l’appareil peut être physiquement éjecté, il le sera.

Syntaxe

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

Paramètres

[in] dnDevInst

L’appareil fourni par l’appelant instance handle 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.) S’il 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 d’ordinateur 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, il retourne l’un des codes d’erreur CR_ préfixés 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 à distance que pour débloquer 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 disposer de 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 d’appel n’est pas interactif ou s’exécute dans un environnement multi-utilisateur dans une session non attachée à la console physique (telle qu’une session des services Terminal Server distante), les appelants de cette fonction doivent disposer de 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.

Les fonctionnalités d’accès aux machines distantes ont été supprimées dans les systèmes d’exploitation Windows 8 et Windows Server 2012 et versions ultérieures. Vous ne pouvez donc pas accéder aux machines distantes lors de l’exécution sur ces versions de Windows.

Configuration requise

   
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_Request_Device_Eject CM_Query_And_Remove_SubTree_Ex CM_Query_And_Remove_SubTree