Função WdfRequestChangeTarget (wdfrequest.h)

[Aplica-se a KMDF e UMDF]

O método WdfRequestChangeTarget verifica se uma solicitação de E/S especificada pode ser enviada para um destino de E/S especificado.

Sintaxe

NTSTATUS WdfRequestChangeTarget(
  [in] WDFREQUEST  Request,
  [in] WDFIOTARGET IoTarget
);

Parâmetros

[in] Request

Um identificador para um objeto de solicitação de estrutura.

[in] IoTarget

Um identificador para um objeto de destino de E/S de estrutura.

Retornar valor

WdfRequestChangeTarget retornará STATUS_SUCCESS se a operação for bem-sucedida. Caso contrário, esse método poderá retornar um dos seguintes valores:

Código de retorno Descrição
STATUS_INVALID_PARAMETER
Um parâmetro de entrada é inválido.
STATUS_INSUFFICIENT_RESOURCES
Não há recursos suficientes do sistema para concluir a operação.
STATUS_REQUEST_NOT_ACCEPTED
A matriz de locais de pilha de E/S da solicitação não é grande o suficiente para permitir que o driver envie a solicitação para o destino de E/S.
 

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

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

Comentários

Seu driver deve chamar o método WdfRequestChangeTarget antes de chamar WdfRequestSend, se o driver enviar uma única solicitação de E/S para vários destinos de E/S. WdfRequestChangeTarget verifica se a solicitação pode ser enviada para o destino de E/S especificado.

A maioria dos drivers envia cada solicitação para apenas um dispositivo e, portanto, para apenas um destino de E/S. Um driver recebe a solicitação ou cria uma nova solicitação chamando WdfRequestCreate.

Se o driver estiver enviando a solicitação para um dispositivo, ele chamará WdfDeviceGetIoTarget para determinar o destino de E/S do dispositivo e, em seguida, chamará WdfRequestSend para enviar a solicitação para o destino.

Se o driver estiver enviando a solicitação para vários dispositivos, ele chamará WdfDeviceGetIoTarget para cada dispositivo para determinar o destino de E/S do dispositivo. Antes de chamar WdfRequestSend, o driver deve chamar WdfRequestChangeTarget para garantir que cada destino de E/S esteja acessível.

Para obter mais informações sobre WdfRequestChangeTarget, consulte Encaminhando solicitações de E/S.

Exemplos

O exemplo de código a seguir verifica se uma solicitação de E/S pode ser enviada para o destino de E/S local de um dispositivo especificado.

NTSTATUS  status;

status = WdfRequestChangeTarget(
                                request,
                                WdfDeviceGetIoTarget(Device)
                                );

Requisitos

Requisito Valor
Plataforma de Destino Universal
Versão mínima do KMDF 1.0
Versão mínima do UMDF 2,0
Cabeçalho wdfrequest.h (inclua Wdf.h)
Biblioteca Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <=DISPATCH_LEVEL
Regras de conformidade de DDI DriverCreate(kmdf), InvalidReqAccess(kmdf), InvalidReqAccessLocal(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Confira também

WdfDeviceGetIoTarget

WdfRequestCreate

WdfRequestSend