Condividi tramite


Funzione WdfPdoMarkMissing (wdfpdo.h)

[Si applica solo a KMDF]

Il metodo WdfPdoMarkMissing informa il framework che un dispositivo non è più accessibile.

Sintassi

NTSTATUS WdfPdoMarkMissing(
  [in] WDFDEVICE Device
);

Parametri

[in] Device

Handle per un oggetto dispositivo framework che rappresenta l'oggetto dispositivo fisico (PDO) del dispositivo.

Valore restituito

Se l'operazione ha esito positivo, la funzione restituisce STATUS_SUCCESS. I valori restituiti aggiuntivi includono:

Codice restituito Descrizione
STATUS_INVALID_PARAMETER
L'handle dispositivo non rappresenta un PDO.
STATUS_NO_SUCH_DEVICE
Impossibile trovare l'oggetto dispositivo.
 

Il metodo potrebbe anche restituire altri valori NTSTATUS.

Un controllo dei bug di sistema si verifica se il driver fornisce un handle di oggetto non valido.

Commenti

Per altre informazioni su WdfPdoMarkMissing, vedere Enumerazione statica.

Esempio

Nell'esempio di codice seguente viene eseguita una ricerca in un elenco di dispositivi figlio in modo che corrisponda a un numero di serie specificato. Quando l'esempio trova l'elemento figlio corretto, chiama WdfPdoMarkMissing per indicare che l'elemento figlio non è accessibile. Questo esempio è stato tratto dal driver dell'autobus di esempio Tostapane e semplificato.

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

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Versione KMDF minima 1.0
Intestazione wdfpdo.h (include Wdf.h)
Libreria Wdf01000.sys (vedere Controllo delle versioni della libreria framework).
IRQL <= DISPATCH_LEVEL
Regole di conformità DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Vedi anche

WdfFdoLockStaticChildListForIteration

WdfFdoRetrieveNextStaticChild

WdfFdoUnlockStaticChildListFromIteration