Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Pekaren DeferredContext som skickas till KeInitializeDpc pekar på ett kontextområde där andra drivrutinsrutiner och själva CustomTimerDpc-rutinen kan upprätthålla tillståndet. Kerneln skickar pekaren DeferredContext i varje anrop till DPC-rutinen.
Till skillnad från en IoTimer-rutin har en CustomTimerDpc inga särskilda associationer till ett enhetsobjekt som skapats av drivrutinen. En drivrutin kan dock associera en CustomTimerDpc-rutin med ett enhetsobjekt som skapats av drivrutinen genom att inkludera en pekare till enhetsobjektet i dess kontextområde.
Kontextområdet måste finnas i det fasta, drivrutinsallokerade minnet. Det här kontextområdet finns vanligtvis i ett enhetstillägg, men det kan också finnas i en icke-sidsidig pool. Om drivrutinen använder ett kontrollantobjekt kan det finnas i ett kontrollanttillägg. Innehållet i kontextområdet är drivrutinsbestämt.
Om en CustomTimerDpc-rutin delar kontextinformation med drivrutinens ISR måste CustomTimerDpc-rutinen använda KeSynchronizeExecution för att anropa en SynchCritSection-rutin som kommer åt den delade kontexten. Mer information finns i Använda kritiska avsnitt.
Om CustomTimerDpc delar kontextinformationen med andra icke-ISR-drivrutinsrutiner måste området på DeferredContext skyddas av ett executive spin lock. Mer information finns i Spinlåser.