Compartilhar via


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)

Confira também

DEVICE_OBJECT

WdfDeviceGetIoTarget

WdfIoTargetCreate

WdfIoTargetWdmGetTargetFileHandle

WdfIoTargetWdmGetTargetFileObject