WdfPdoMarkMissing-Funktion (wdfpdo.h)
[Gilt nur für KMDF]
Die WdfPdoMarkMissing-Methode informiert das Framework darüber, dass auf ein Gerät nicht mehr zugegriffen werden kann.
Syntax
NTSTATUS WdfPdoMarkMissing(
[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
Wenn der Vorgang erfolgreich ist, gibt die Funktion STATUS_SUCCESS zurück. Weitere Rückgabewerte sind:
Rückgabecode | Beschreibung |
---|---|
|
Das Gerätehandle stellt keine PDO dar. |
|
Das Geräteobjekt konnte nicht gefunden werden. |
Die -Methode gibt möglicherweise auch andere NTSTATUS-Werte zurück.
Eine Systemfehlerüberprüfung tritt auf, wenn der Treiber ein ungültiges Objekthandle bereitstellt.
Hinweise
Weitere Informationen zu WdfPdoMarkMissing finden Sie unter Statische Enumeration.
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 WdfPdoMarkMissing aufgerufen, um anzugeben, dass auf das untergeordnete Element nicht zugegriffen werden kann. Dieses Beispiel stammt aus dem Toaster-Beispielbustreiber und wurde vereinfacht.
WDFDEVICE hChild = NULL;
NTSTATUS status = STATUS_INVALID_PARAMETER;
BOOLEAN found = FALSE;
PPDO_DEVICE_DATA pdoData;
WdfFdoLockStaticChildListForIteration(Device);
while ((hChild = WdfFdoRetrieveNextStaticChild(
Device,
hChild,
WdfRetrieveAddedChildren
)) != NULL) {
pdoData = PdoGetData(hChild); // Device object context space
if (SerialNo == pdoData->SerialNo) {
status = WdfPdoMarkMissing(hChild);
if(!NT_SUCCESS(status)) {
KdPrint(("WdfPdoMarkMissing failed 0x%x\n", status));
break;
}
found = TRUE;
break;
}
}
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) |