Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
[Aplica-se a KMDF e UMDF]
O método WdfInterruptSetPolicy especifica a prioridade de interrupção, a afinidade do processador e a política de afinidade para uma interrupção especificada.
Sintaxe
VOID WdfInterruptSetPolicy(
[in] WDFINTERRUPT Interrupt,
[in] WDF_INTERRUPT_POLICY Policy,
[in] WDF_INTERRUPT_PRIORITY Priority,
[in] KAFFINITY TargetProcessorSet
);
Parâmetros
[in] Interrupt
Um identificador para um objeto de interrupção de estrutura.
[in] Policy
Um enumerador tipo WDF_INTERRUPT_POLICYque especifica uma política de afinidade de processador para a interrupção.
[in] Priority
Um enumerador tipo WDF_INTERRUPT_PRIORITYque especifica uma prioridade para a interrupção.
[in] TargetProcessorSet
Um valor kaffinitydigitado que especifica uma afinidade de processador para a interrupção, se o parâmetro Policy for definido como WdfIrqPolicySpecifiedProcessors.
Valor de retorno
Nenhum
Observações
Uma verificação de bug ocorre se o driver fornece um identificador de objeto inválido.
O Windows Vista e versões posteriores do sistema operacional permitem que os drivers especifiquem a prioridade, a afinidade do processador e a política de afinidade de uma interrupção. Para obter informações sobre como usar o registro para substituir os valores que conjuntos de WdfInterruptSetPolicy, consulte de afinidade e prioridade de interrupção.
Se um driver estiver em execução em uma versão do sistema operacional anterior ao Windows Vista, a estrutura ignorará os valores especificados pelo driver ao chamar WdfInterruptSetPolicy.
Para obter mais informações sobre valores do Registro e seções INF que especificam a prioridade, a afinidade do processador e a política de afinidade de uma interrupção, consulte interromper a afinidade e a prioridade.
Se um driver chama WdfInterruptSetPolicy, ele normalmente faz isso em sua função de retorno de chamada EvtDriverDeviceAdd, depois de chamar WdfInterruptCreate.
Se o driver criar interrupções no EvtDevicePrepareHardware, não use WdfInterruptSetPolicy ou WdfInterruptSetExtendedPolicy . Em vez disso, aplique a política em EvtDeviceFilterAddResourceRequirements, manipulando diretamente o requisito de recurso de interrupção que essa função de retorno de chamada recebe em seu parâmetro IoResourceRequirementsList.
Para obter mais informações sobre como lidar com interrupções em drivers baseados em estrutura, consulte Tratando interrupções de hardware.
Exemplos
O exemplo de código a seguir atribui uma interrupção de dispositivo ao processador 0, com prioridade normal.
#define AFFINITY_MASK(n) ((ULONG_PTR)1 << (n))
WdfInterruptSetPolicy(
Interrupt,
WdfIrqPolicySpecifiedProcessors,
WdfIrqPriorityNormal,
AFFINITY_MASK(0)
);