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


функция обратного вызова 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 (включая 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