Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Ukazatel DeferredContext předaný KeInitializeDpc odkazuje na kontextovou oblast, kde ostatní rutiny ovladačů, a vlastní rutina CustomTimerDpc, mohou udržovat stav. Jádro předává ukazatel DeferredContext v každém volání rutiny DPC.
Na rozdíl od rutiny IoTimer nemá CustomTimerDpc žádné konkrétní přidružení k objektu zařízení vytvořenému ovladačem. Ovladač však může přidružit rutinu CustomTimerDpc k objektu zařízení vytvořenému ovladačem zahrnutím ukazatele na objekt zařízení v jeho kontextové oblasti.
Kontextová oblast musí být v rezidentní paměti přidělené ovladači. Tato kontextová oblast je obvykle v rozšíření zařízení, ale může se také nacházet v nestránkovém fondu. Pokud ovladač používá objekt kontroleru, může být umístěn v rozšíření kontroleru. Obsah kontextové oblasti je určen pro řidiče.
Pokud rutina CustomTimerDpc sdílí informace o kontextu s ISR ovladače, rutina CustomTimerDpc musí použít KeSynchronizeExecution k volání rutiny SynchCritSection , která přistupuje ke sdílenému kontextu. Další informace naleznete v tématu Použití kritických oddílů.
Pokud CustomTimerDpc sdílí informace o kontextu s jinými rutinami ovladače než ISR, musí být oblast v DeferredContext chráněna výkonným spinlockem. Další informace viz Spin Locks.