A CustomTimerDpc környezeti adatainak megadása

A KeInitializeDpc-nek átadott DeferredContext mutató egy olyan környezetterületre mutat, ahol más illesztőprogram-rutinok és maga a CustomTimerDpc rutin is képes fenntartani az állapotot. A kernel a DPC-rutin minden hívásában átadja a DeferredContext mutatót.

Az IoTimer rutinnal ellentétben a CustomTimerDpc nem áll különösebb kapcsolatban az illesztőprogram által létrehozott eszközobjektummal. Az illesztőprogramok azonban hozzárendelhetnek egy CustomTimerDpc-rutint egy illesztőprogram által létrehozott eszközobjektumhoz úgy, hogy a környezetében mutatót is felvesznek az eszközobjektumra.

A környezet területének rezidens, az illesztőprogram által lefoglalt memóriában kell lennie. Ez a környezeti terület általában egy eszköz kiterjesztésében található, de lehet nem lapozott memóriakészletben is. Ha az illesztőprogram vezérlőobjektumot használ, az egy vezérlőbővítményben is lehet. A környezetterület tartalmát az illesztőprogram határozza meg.

Ha egy CustomTimerDpc rutin környezeti adatokat oszt meg az illesztőprogram ISR-jével, a CustomTimerDpc rutinnak a KeSynchronizeExecution használatával kell meghívnia egy SynchCritSection rutint, amely hozzáfér a megosztott környezethez. További információ: Kritikus szakaszok használata.

Ha a CustomTimerDpc megosztja a környezeti információkat más, nem ISR-illesztőprogram rutinokkal, akkor a DeferredContext területet egy vezetői spin-zárral kell védeni. További információ: Spin Locks.