CM_Request_Device_EjectW-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 entfernbar ist. Wenn das Gerät physisch ausgeworfen werden kann, ist es dies.

Syntax

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

Parameter

[in] dnDevInst

Vom Aufrufer bereitgestelltes 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 in Cfgmgr32.h definierten Fehlercodes mit CR_ Präfix zurückgegeben.

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 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 dokumentation Microsoft Windows SDK beschrieben.

Informationen zur Verwendung von Geräte- instance Handles, 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 (include 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