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.
Valor de retorno
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 |
---|---|
|
Um parâmetro de entrada é inválido. |
|
Não há recursos suficientes do sistema para concluir a operação. |
|
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 .
Uma verificação de bug ocorre se o driver fornece um identificador de objeto inválido.
Observações
O 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 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 Solicitações de E/S de Encaminhamento.
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 |
---|---|
da 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) |