Compartir a través de


Función WdfPdoMarkMissing (wdfpdo.h)

[Solo se aplica a KMDF]

El método WdfPdoMarkMissing informa al marco de trabajo de que un dispositivo ya no es accesible.

Sintaxis

NTSTATUS WdfPdoMarkMissing(
  [in] WDFDEVICE Device
);

Parámetros

[in] Device

Identificador de un objeto de dispositivo de marco que representa el objeto de dispositivo físico (PDO) del dispositivo.

Valor devuelto

Si la operación se realiza correctamente, la función devuelve STATUS_SUCCESS. Entre los valores devueltos adicionales se incluyen:

Código devuelto Descripción
STATUS_INVALID_PARAMETER
El identificador de dispositivo no representa un PDO.
STATUS_NO_SUCH_DEVICE
No se encontró el objeto de dispositivo.
 

El método también puede devolver otros valores NTSTATUS.

Se produce una comprobación de errores del sistema si el controlador proporciona un identificador de objeto no válido.

Comentarios

Para obtener más información sobre WdfPdoMarkMissing, vea Static Enumeration.

Ejemplos

En el ejemplo de código siguiente se busca una lista de dispositivos secundarios para buscar una que coincida con un número de serie especificado. Cuando el ejemplo encuentra el elemento secundario correcto, llama a WdfPdoMarkMissing para indicar que el elemento secundario no es accesible. Este ejemplo se ha tomado del controlador de bus de ejemplo de Toaster y se ha simplificado.

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

Requisitos

Requisito Value
Plataforma de destino Universal
Versión mínima de KMDF 1.0
Encabezado wdfpdo.h (incluya Wdf.h)
Library Wdf01000.sys (consulte Control de versiones de la biblioteca de marcos).
IRQL <= DISPATCH_LEVEL
Reglas de cumplimiento de DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Consulte también

WdfFdoLockStaticChildListForIteration

WdfFdoRetrieveNextStaticChild

WdfFdoUnlockStaticChildListFromIteration