Introdução aos objetos DPC

Como os ISRs devem ser executados o mais rápido possível, os drivers geralmente devem adiar a conclusão da manutenção de uma interrupção até que o ISR retorne. Portanto, o sistema fornece suporte para DPCs ( chamadas de procedimento adiado ), que podem ser enfileiradas de ISRs e que são executadas posteriormente e em um IRQL inferior ao ISR.

Cada DPC é associado a um objeto DPC definido pelo sistema. O sistema fornece um objeto DPC para cada objeto de dispositivo. O sistema inicializa esse objeto DPC quando um driver registra uma rotina DPC conhecida como rotina DpcForIsr . Um driver poderá criar objetos DPC adicionais se mais de um DPC for necessário. Esses DPCs extras são conhecidos como rotinas CustomDpc .

O conteúdo do objeto DPC não deve ser referenciado diretamente por drivers. A estrutura do objeto não está documentada. Os drivers não têm acesso ao objeto DPC fornecido pelo sistema atribuído a cada objeto de dispositivo. Os drivers alocam armazenamento para DPCs extras, mas o conteúdo desses objetos DPC só deve ser referenciado por rotinas do sistema.

Objetos DPC e DPCs também podem ser usados com temporizadores. Para obter mais informações, consulte Objetos de temporizador e DPCs.