Freigeben über


WdfPdoRequestEject-Funktion (wdfpdo.h)

[Gilt nur für KMDF]

Die WdfPdoRequestEject Methode informiert das Framework darüber, dass ein angegebenes Gerät von seiner Dockingstation ausgeworfen werden soll.

Syntax

VOID WdfPdoRequestEject(
  [in] WDFDEVICE Device
);

Die Parameter

[in] Device

Ein Handle zu einem Framework-Geräteobjekt, das das physische Geräteobjekt des Geräts (PDO) darstellt.

Rückgabewert

Nichts

Bemerkungen

Wenn der Treiber ein ungültiges Objekthandle bereitstellt, tritt eine Fehlerüberprüfung auf.

Ein Bustreiber kann WdfPdoRequestEject oder WdfChildListRequestChildEject- aufrufen, um zu melden, dass der Treiber versucht hat, eines seiner aufgezählten untergeordneten Geräte von der Dockingstation des Geräts auszuwerfen. Beispielsweise kann der Treiber erkennen, dass ein Benutzer eine Auswerftaste gedrückt hat.

Wenn das Framework-Geräteobjekt für die PDO des Geräts verfügbar ist, kann der Treiber WdfPdoRequestEjectaufrufen. Wenn der Treiber dynamische Busenumeration verwendet und die Identifikationsbeschreibung des Geräts verfügbar ist, kann der Treiber WdfChildListRequestChildEjectaufrufen.

Weitere Informationen zu WdfPdoRequestEject und WdfChildListRequestChildEject-finden Sie unter Unterstützen von auswerfbaren Geräten.

Beispiele

Im folgenden Codebeispiel wird eine Liste untergeordneter Geräte durchsucht, um eine Liste zu finden, die einer angegebenen Seriennummer entspricht. Wenn das Beispiel das richtige untergeordnete Element findet, ruft es WdfPdoRequestEject- auf, um anzugeben, dass das untergeordnete Element ausgeworfen wird. Dieses Beispiel stammt aus dem Toaster Beispielbustreiber und vereinfacht.

WDFDEVICE  hChild = NULL;
NTSTATUS  status = STATUS_INVALID_PARAMETER;
PPDO_DEVICE_DATA  pdoData;

WdfFdoLockStaticChildListForIteration(Device);

while ((hChild = WdfFdoRetrieveNextStaticChild(
                                               Device, 
                                               hChild,
                                               WdfRetrieveAddedChildren
                                               )) != NULL) {
    //
    // Obtain device object context space, and check the
    // stored serial number.
    //
    pdoData = PdoGetData(hChild);
    if (SerialNo == pdoData->SerialNo) {
        status = STATUS_SUCCESS;
        WdfPdoRequestEject(hChild);
    }
}
WdfFdoUnlockStaticChildListFromIteration(Device);

Anforderungen

Anforderung Wert
Zielplattform universell
Minimale KMDF-Version 1.0
Kopfzeile wdfpdo.h (include Wdf.h)
Bibliothek Wdf01000.sys (siehe Framework-Bibliotheksversionsverwaltung.)
IRQL <= DISPATCH_LEVEL
DDI-Complianceregeln DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Siehe auch

WdfFdoLockStaticChildListForIteration

WdfFdoRetrieveNextStaticChild

WdfFdoUnlockStaticChildListFromIteration