Partager via


fonction CM_Request_Device_EjectA (cfgmgr32.h)

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

Syntaxe

CMAPI CONFIGRET CM_Request_Device_EjectA(
  [in]            DEVINST        dnDevInst,
  [out, optional] PPNP_VETO_TYPE pVetoType,
  [out, optional] LPSTR          pszVetoName,
  [in]            ULONG          ulNameLength,
  [in]            ULONG          ulFlags
);

Paramètres

[in] dnDevInst

L’appareil fourni par l’appelant instance handle lié à l’ordinateur local.

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

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

Les appelants de CM_Request_Device_Eject 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 à l’ordinateur local, consultez CM_Get_Child.

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