Compartilhar via


Função WdfPdoMarkMissing (wdfpdo.h)

[Aplica-se somente ao KMDF]

O método WdfPdoMarkMissing informa à estrutura que um dispositivo não está mais acessível.

Sintaxe

NTSTATUS WdfPdoMarkMissing(
  [in] WDFDEVICE Device
);

Parâmetros

[in] Device

Um identificador para um objeto de dispositivo de estrutura que representa o PDO (objeto de dispositivo físico) do dispositivo.

Retornar valor

Se a operação for bem-sucedida, a função retornará STATUS_SUCCESS. Os valores de retorno adicionais incluem:

Código de retorno Descrição
STATUS_INVALID_PARAMETER
O identificador do dispositivo não representa um PDO.
STATUS_NO_SUCH_DEVICE
Não foi possível encontrar o objeto do dispositivo.
 

O método também pode retornar outros valores NTSTATUS.

Um bug do sistema marcar ocorrerá se o driver fornecer um identificador de objeto inválido.

Comentários

Para obter mais informações sobre WdfPdoMarkMissing, consulte Enumeração estática.

Exemplos

O exemplo de código a seguir pesquisa uma lista de dispositivos filho para localizar um que corresponda a um número de série especificado. Quando o exemplo encontra o filho correto, ele chama WdfPdoMarkMissing para indicar que o filho não está acessível. Este exemplo foi obtido do driver de barramento de exemplo da Torradeira e 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 Valor
Plataforma de Destino Universal
Versão mínima do KMDF 1.0
Cabeçalho wdfpdo.h (include Wdf.h)
Biblioteca Wdf01000.sys (consulte Controle de versão da biblioteca de estrutura.)
IRQL <= DISPATCH_LEVEL
Regras de conformidade da DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Confira também

WdfFdoLockStaticChildListForIteration

WdfFdoRetrieveNextStaticChild

WdfFdoUnlockStaticChildListFromIteration