Função WdfPdoRequestEject (wdfpdo.h)
[Aplica-se somente ao KMDF]
O método WdfPdoRequestEject informa à estrutura que um dispositivo especificado está prestes a ser ejetado de sua estação de encaixe.
Sintaxe
void WdfPdoRequestEject(
[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
Nenhum
Comentários
Um bug marcar ocorrerá se o driver fornecer um identificador de objeto inválido.
Um motorista de ônibus pode chamar WdfPdoRequestEject ou WdfChildListRequestChildEject para relatar que o driver detectou uma tentativa de ejetar um de seus dispositivos filho enumerados da estação de encaixe do dispositivo. Por exemplo, o driver pode detectar que um usuário efetuou push de um botão ejetar.
Se o objeto de dispositivo de estrutura do PDO do dispositivo estiver disponível, o driver poderá chamar WdfPdoRequestEject. Se o driver estiver usando a enumeração de barramento dinâmico e se a descrição de identificação do dispositivo estiver disponível, o driver poderá chamar WdfChildListRequestChildEject.
Para obter mais informações sobre WdfPdoRequestEject e WdfChildListRequestChildEject, consulte Suporte a dispositivos ejetáveis.
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 localiza o filho correto, ele chama WdfPdoRequestEject para indicar que o filho está sendo ejetado. Este exemplo foi obtido do driver de ônibus de exemplo da Torradeira e simplificado.
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);
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Universal |
Versão mínima do KMDF | 1.0 |
Cabeçalho | wdfpdo.h (inclua Wdf.h) |
Biblioteca | Wdf01000.sys (consulte Controle de versão da biblioteca de estrutura.) |
IRQL | <= DISPATCH_LEVEL |
Regras de conformidade de DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |