Freigeben über


WdfPdoRequestEject-Funktion (wdfpdo.h)

[Gilt nur für KMDF]

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

Syntax

void WdfPdoRequestEject(
  [in] WDFDEVICE Device
);

Parameter

[in] Device

Ein Handle für ein Frameworkgeräteobjekt, das das physische Geräteobjekt (PDO) des Geräts darstellt.

Rückgabewert

Keine

Bemerkungen

Eine Fehlerüberprüfung tritt auf, wenn der Treiber ein ungültiges Objekthandle bereitstellt.

Ein Bustreiber kann WdfPdoRequestEject oder WdfChildListRequestChildEject aufrufen, um zu melden, dass der Treiber einen Versuch erkannt hat, eines seiner aufgelisteten untergeordneten Geräte aus der Dockingstation des Geräts auszuwerfen. Beispielsweise kann der Treiber erkennen, dass ein Benutzer eine Auswurftaste gedrückt hat.

Wenn das Framework-Geräteobjekt für die PDO des Geräts verfügbar ist, kann der Treiber WdfPdoRequestEject aufrufen. Wenn der Treiber die dynamische Busaufzählung verwendet und die Identifikationsbeschreibung des Geräts verfügbar ist, kann der Treiber WdfChildListRequestChildEject aufrufen.

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 ein Gerät zu finden, das einer angegebenen Seriennummer entspricht. Wenn im Beispiel das richtige untergeordnete Element gefunden wird, wird WdfPdoRequestEject aufgerufen, um anzugeben, dass das untergeordnete Element ausgeworfen wird. Dieses Beispiel stammt aus dem Toaster-Beispielbustreiber und wurde 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
KMDF-Mindestversion 1.0
Kopfzeile wdfpdo.h (einschließen von Wdf.h)
Bibliothek Wdf01000.sys (siehe Versionsverwaltung der Frameworkbibliothek).)
IRQL <= DISPATCH_LEVEL
DDI-Complianceregeln DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Weitere Informationen

WdfFdoLockStaticChildListForIteration

WdfFdoRetrieveNextStaticChild

WdfFdoUnlockStaticChildListFromIteration