Função WdfIoTargetWdmGetTargetDeviceObject (wdfiotarget.h)
[Aplica-se somente ao KMDF]
O método WdfIoTargetWdmGetTargetDeviceObject retorna um ponteiro para o objeto de dispositivo WDM (Modelo de Driver do Windows) associado a um destino de E/S local ou remoto especificado.
Sintaxe
PDEVICE_OBJECT WdfIoTargetWdmGetTargetDeviceObject(
[in] WDFIOTARGET IoTarget
);
Parâmetros
[in] IoTarget
Um identificador para um objeto de destino de E/S local ou remoto que foi obtido de uma chamada anterior para WdfDeviceGetIoTarget ou WdfIoTargetCreate ou de um método que um destino de E/S especializado fornece.
Retornar valor
WdfIoTargetWdmGetTargetDeviceObject retorna um ponteiro para uma estrutura de DEVICE_OBJECT do WDM.
Um bug marcar ocorrerá se o driver fornecer um identificador de objeto inválido.
Comentários
A maioria dos drivers baseados em estrutura não precisa acessar o objeto de dispositivo WDM de um destino de E/S.
O ponteiro que o método WdfIoTargetWdmGetTargetDeviceObject retorna é válido até que o driver chame WdfIoTargetClose ou WdfIoTargetCloseForQueryRemove ou até que o objeto de destino de E/S remoto seja excluído. Se o driver fornecer uma função EvtCleanupCallback para o objeto de destino de E/S remoto e se o objeto for excluído antes que o destino de E/S remoto seja fechado, o ponteiro será válido até que a função EvtCleanupCallback retorne.
Se o driver tentar acessar o objeto do dispositivo WDM depois que ele for removido, o driver poderá causar uma falha no sistema. O exemplo toastmon demonstra como o driver pode fornecer uma função de retorno de chamada EvtIoTargetQueryRemove para que ele seja notificado se o destino de E/S for removido.
Para obter mais informações sobre WdfIoTargetWdmGetTargetDeviceObject, consulte Obtendo informações sobre um destino de E/S geral.
Para obter mais informações sobre destinos de E/S, consulte Usando destinos de E/S.
Exemplos
O exemplo de código a seguir verifica a estrutura de DEVICE_OBJECT do WDM de destino de E/S para verificar se o destino dá suporte a operações de E/S diretas.
if (!((WdfIoTargetWdmGetTargetDeviceObject(Adapter->IoTarget))->Flags
& DO_DIRECT_IO)) {
ASSERTMSG("Target device doesn't support direct I/O\n", FALSE);
return STATUS_INVALID_DEVICE_REQUEST;
}
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Universal |
Versão mínima do KMDF | 1.0 |
Cabeçalho | wdfiotarget.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) |