Compartilhar via


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)

Confira também

EvtDriverDeviceAdd

WdfInterruptCreate

WdfInterruptSetExtendedPolicy