Função WdfInterruptSetPolicy (wdfinterrupt.h)
[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 de tipo WDF_INTERRUPT_POLICY que especifica uma política de afinidade de processador para a interrupção.
[in] Priority
Um enumerador de tipo WDF_INTERRUPT_PRIORITY que especifica uma prioridade para a interrupção.
[in] TargetProcessorSet
Um valor do tipo KAFFINITY que especifica uma afinidade de processador para a interrupção, se o parâmetro Policy estiver definido como WdfIrqPolicySpecifiedProcessors.
Retornar valor
Nenhum
Comentários
Um bug marcar ocorrerá se o driver fornecer 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 WdfInterruptSetPolicy define, consulte 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 afinidade e 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 em 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 Tratamento de 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)
);
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 | wdfinterrupt.h (inclua Wdf.h) |
Biblioteca | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | <=DISPATCH_LEVEL |
Regras de conformidade da DDI | DriverCreate(kmdf) |