Compartilhar via


Método IWDFInterrupt::SetExtendedPolicy (wudfddi.h)

[Aviso: UMDF 2 é a versão mais recente do UMDF e substitui UMDF 1. Todos os novos drivers UMDF devem ser gravados usando UMDF 2. Nenhum novo recurso está sendo adicionado ao UMDF 1 e há suporte limitado para UMDF 1 em versões mais recentes do Windows 10. Drivers universais do Windows devem usar UMDF 2. Para obter mais informações, consulte Introdução com UMDF.]

O método SetExtendedPolicy especifica a prioridade de interrupção, a afinidade do processador, a política de afinidade e o grupo de processadores para uma interrupção especificada.

Sintaxe

void SetExtendedPolicy(
  [in] PWDF_INTERRUPT_EXTENDED_POLICY PolicyAndGroup
);

Parâmetros

[in] PolicyAndGroup

Um ponteiro para uma estrutura de WDF_INTERRUPT_EXTENDED_POLICY alocada pelo chamador que o driver inicializou anteriormente chamando WDF_INTERRUPT_EXTENDED_POLICY_INIT.

Retornar valor

Nenhum

Comentários

Esse método é equivalente a WdfInterruptSetExtendedPolicy do KMDF. Consulte a seção Comentários de WdfInterruptSetExtendedPolicy para obter mais informações sobre esse método.

Se um driver estiver em execução em uma versão do sistema operacional anterior ao Windows 7, a estrutura ignorará o valor especificado pelo driver para o número do grupo de processadores ao chamar SetExtendedPolicy.

Para obter mais informações sobre como lidar com interrupções em drivers UMDF, consulte Acessando interrupções de hardware e manipulação.

Exemplos

O exemplo de código a seguir chama WDF_INTERRUPT_EXTENDED_POLICY_INIT para inicializar uma estrutura WDF_INTERRUPT_EXTENDED_POLICY ; define valores para a política, a prioridade e o conjunto de processadores de destino; e chama SetExtendedPolicy. O exemplo define a prioridade normal para a interrupção e atribui a interrupção ao processador 0 no grupo de processadores 2.


IWDFInterrupt* pInterrupt;

#define AFFINITY_MASK(n) ((ULONG_PTR)1 << (n))

WDF_INTERRUPT_EXTENDED_POLICY myExtendedPolicy;

WDF_INTERRUPT_EXTENDED_POLICY_INIT(&myExtendedPolicy);
myExtendedPolicy.Policy = WdfIrqPolicySpecifiedProcessors;
myExtendedPolicy.Priority = WdfIrqPriorityNormal;
myExtendedPolicy.TargetProcessorSetAndGroup.Mask = AFFINITY_MASK(0);
myExtendedPolicy.TargetProcessorSetAndGroup.Group = 2;

pInterrupt->SetExtendedPolicy(
                              &myExtendedPolicy
 );

Requisitos

Requisito Valor
Fim do suporte Indisponível no UMDF 2.0 e posterior.
Plataforma de Destino Área de Trabalho
Versão mínima do UMDF 1.11
Cabeçalho wudfddi.h
DLL WUDFx.dll

Confira também

IWDFInterrupt

WDF_INTERRUPT_EXTENDED_POLICY

WDF_INTERRUPT_EXTENDED_POLICY_INIT