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