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