Compartilhar via


Fornecendo informações de contexto customTimerDpc

O ponteiro DeferredContext passado para KeInitializeDpc aponta para uma área de contexto em que outras rotinas de driver e a própria rotina CustomTimerDpc podem manter o estado. O kernel passa o ponteiro DeferredContext em cada chamada para a rotina DPC.

Ao contrário de uma rotina IoTimer , um CustomTimerDpc não tem associações específicas com um objeto de dispositivo criado pelo driver. No entanto, um driver pode associar uma rotina CustomTimerDpc a um objeto de dispositivo criado pelo driver, incluindo um ponteiro para o objeto do dispositivo em sua área de contexto.

A área de contexto deve estar na memória residente alocada pelo driver. Normalmente, essa área de contexto está em uma extensão de dispositivo, mas também pode estar no pool nãopagado. Se o driver usar um objeto de controlador, ele poderá estar em uma extensão do controlador. O conteúdo da área de contexto é determinado pelo driver.

Se uma rotina CustomTimerDpc compartilhar informações de contexto com o ISR do driver, a rotina CustomTimerDpc deverá usar KeSynchronizeExecution para chamar uma rotina SynchCritSection que acessa o contexto compartilhado. Para obter mais informações, consulte Usando seções críticas.

Se CustomTimerDpc compartilhar as informações de contexto com outras rotinas de driver não ISR, a área em DeferredContext deverá ser protegida por um bloqueio de rotação executivo. Para obter mais informações, consulte Spin Locks.