Поделиться через


функция обратного вызова PPARALLEL_TRY_ALLOCATE_ROUTINE (parallel.h)

Подпрограмма обратного вызова PPARALLEL_TRY_ALLOCATE_ROUTINEтипа (ISR) пытается выделить параллельный порт в IRQL = DIRQL. Драйвер функции, предоставляемый системой для параллельных портов, предоставляет эту подпрограмму.

Синтаксис

PPARALLEL_TRY_ALLOCATE_ROUTINE PparallelTryAllocateRoutine;

BOOLEAN PparallelTryAllocateRoutine(
  [in] PVOID TryAllocateContext
)
{...}

Параметры

[in] TryAllocateContext

Указатель на расширение устройства функционального объекта устройства, представляющего параллельный порт.

Возвращаемое значение

Возвращаемый код Описание
TRUE
Был выделен параллельный порт.
FALSE
Параллельный порт не был выделен.

Замечания

Драйвер режима ядра подключает подпрограмму службы прерываний с помощью IOCTL_INTERNAL_PARALLEL_CONNECT_INTERRUPT, которая возвращает структуру PARALLEL_INTERRUPT_INFORMATION. Эта структура включает элемент TryAllocatePortAtInterruptLevel, который является указателем на обратный вызов, предоставленный системой PPARALLEL_TRY_ALLOCATE_ROUTINE (ISR).

Обратный вызов PPARALLEL_TRY_ALLOCATE_ROUTINE (ISR) не блокируется, не помещается в очередь запроса выделения и возвращается немедленно.

Драйвер использует обратный вызов PPARALLEL_TRY_ALLOCATE_ROUTINE (ISR) вместе с предоставленным драйвером ISR. Если драйвер не имеет параллельного порта, выделенного при вызове ISR драйвера, драйвер может использовать этот обратный вызов.

Дополнительные сведения о выделении параллельного порта в ISR см. в подключении подпрограммы службы прерываний кParallelPort.

примечание обратный вызов PPARALLEL_TRY_ALLOCATE_ROUTINE (ISR) не тестируется. Корпорация Майкрософт не рекомендует использовать подпрограмму прерывания, предоставляемую клиентом. Использование прерываний может привести к нестабильности системы. По умолчанию запрос IOCTL_INTERNAL_PARALLEL_CONNECT_INTERRUPT отключен.
 

Требования

Требование Ценность
целевая платформа Настольный
заголовка parallel.h (include Parallel.h)
IRQL DIRQL

См. также

IOCTL_INTERNAL_PARALLEL_DISCONNECT_INTERRUPT

IOCTL_INTERNAL_GET_PARALLEL_PORT_INFO

IOCTL_INTERNAL_PARALLEL_PORT_ALLOCATE

IOCTL_INTERNAL_PARALLEL_CONNECT_INTERRUPT

IOCTL_INTERNAL_PARALLEL_PORT_FREE

PPARALLEL_FREE_ROUTINE (ISR)

PARALLEL_INTERRUPT_INFORMATION