CM_Request_Device_EjectA-Funktion (cfgmgr32.h)

Die CM_Request_Device_Eject-Funktion bereitet ein lokales Gerät instance für die sichere Entfernung vor, wenn das Gerät herausnehmbar ist. Wenn das Gerät physisch ausgeworfen werden kann, ist es das.

Syntax

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

Parameter

[in] dnDevInst

Das vom Anrufer bereitgestellte Gerät instance Handle, das an den lokalen Computer gebunden ist.

[out, optional] pVetoType

(Optional.) Wenn nicht NULL, verweist dies auf einen Speicherort, der, wenn die Entfernungsanforderung fehlschlägt, einen PNP_VETO_TYPE typisierten Wert empfängt, der den Grund für den Fehler angibt.

[out, optional] pszVetoName

(Optional.) Wenn nicht NULL, ist dies ein vom Aufrufer bereitgestellter Zeiger auf einen Zeichenfolgenpuffer, der eine Textzeichenfolge empfängt. Der Typ der Informationen, die diese Zeichenfolge bereitstellt, hängt vom Wert ab, der von pVetoType empfangen wird. Informationen zu diesen Zeichenfolgen finden Sie unter PNP_VETO_TYPE.

[in] ulNameLength

(Optional.) Vom Aufrufer bereitgestellter Wert, der die Länge des von pszVetoName bereitgestellten Zeichenfolgenpuffers darstellt. Dies sollte auf MAX_PATH festgelegt werden.

[in] ulFlags

Wird nicht verwendet.

Rückgabewert

Wenn der Vorgang erfolgreich ist, gibt die Funktion CR_SUCCESS zurück. Andernfalls wird einer der CR_-Präfix-Fehlercodes zurückgegeben, die in Cfgmgr32.h definiert sind.

Hinweise

Wenn pszVetoNameNULL ist, zeigt der PnP-Manager dem Benutzer eine Meldung an, die angibt, dass das Gerät entfernt wurde, oder, wenn die Anforderung fehlgeschlagen ist, den Grund für den Fehler identifiziert. Wenn pszVetoName nicht NULL ist, zeigt der PnP-Manager keine Meldung an. (Beachten Sie jedoch, dass der PnP-Manager nur für Microsoft Windows 2000 eine Meldung anzeigt, auch wenn pszVetoName nicht NULL ist, wenn die CM_DEVCAP_DOCKDEVICE Funktion des Geräts festgelegt ist.)

Aufrufer von CM_Request_Device_Eject benötigen manchmal SeUndockPrivilege oder SeLoadDriverPrivilege wie folgt:

  • Wenn die CM_DEVCAP_DOCKDEVICE-Funktion des Geräts festgelegt ist (das Gerät ist ein "Dock"-Gerät), müssen Anrufer Über SeUndockPrivilege verfügen. (SeLoadDriverPrivilege ist nicht erforderlich.)
  • Wenn die CM_DEVCAP_DOCKDEVICE-Funktion des Geräts nicht festgelegt ist (das Gerät ist kein Dockgerät), und wenn der Aufrufvorgang entweder nicht interaktiv ist oder in einer Umgebung mit mehreren Benutzern in einer Sitzung ausgeführt wird, die nicht an die physische Konsole angefügt ist (z. B. eine Remoteterminaldienstesitzung), müssen Aufrufer dieser Funktion Über SeLoadDriverPrivilege verfügen.
Berechtigungen werden in der Microsoft Windows SDK-Dokumentation beschrieben.

Informationen zur Verwendung von Gerätehandles instance, die an den lokalen Computer gebunden sind, finden Sie unter CM_Get_Child.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar in Microsoft Windows 2000 und höheren Versionen von Windows.
Zielplattform Desktop
Kopfzeile cfgmgr32.h (einschließlich Cfgmgr32.h)
Bibliothek Cfgmgr32.lib

Weitere Informationen

CM_Get_Child
CM_Query_And_Remove_SubTree
CM_Query_And_Remove_SubTree_Ex
CM_Request_Device_Eject_Ex