Tillhandahålla CustomTimerDpc-kontextinformation

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.