Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Система предоставляет одну очередь DPC для каждого процессора. Драйверы могут управлять тем, в какую очередь система назначает DPC, расположением DPC в очереди и временем обработки очереди.
DPC, назначенные в очередь конкретного процессора, выполняются на этом процессоре. По умолчанию, когда драйвер вызывает KeInsertQueueDpc или IoRequestDpc, DPC помещается в очередь на текущем активном процессоре. Драйверы могут указать очередь процессора, вызвав KeSetTargetProcessorDpc перед вызовом KeInsertQueueDpc или IoRequestDpc.
В Windows Vista и более поздних версиях Windows система также имеет одну потоковую очередь DPC для каждого процессора. Драйверы могут использовать KeSetTargetProcessorDpc для указания очереди процессора для потоковых ЦП.
Подпрограмма KeSetImportanceDpc управляет тем, куда DPC помещается в очереди. Как правило, DPC помещается в конец очереди; но если драйвер сначала вызывает KeSetImportanceDpc с параметром "Важность ", равным HighImportance, DPC помещается в начало очереди.
Для обычных (непоточных) DPCs KeSetImportanceDpc также определяет, будет ли KeInsertQueueDpc или IoRequestDpc немедленно начать обработку очереди DPC. В следующем списке описаны правила обработки очереди:
Обработка очереди DPC начинается немедленно, если DPC назначается текущему процессору и Важность не равна LowImportance, или если Важность равна LowImportance, а глубина очереди DPC текущего процессора превышает системный предел или частота запросов DPC снизилась ниже системного минимального значения. В противном случае обработка DPC откладывается до тех пор, пока не будут выполнены соответствующие требования к глубине очереди и скорости.
Обработка очереди DPC начинается немедленно на целевом процессоре, если DPC назначается процессору, который отличается от текущего процессора и важности равно MediumHighImportance или HighImportance, или если глубина очереди DPC целевого процессора превышает системное ограничение. В противном случае обработка DPC откладывается до тех пор, пока не будут выполнены соответствующие требования к глубине очереди и скорости.