PPARALLEL_TRY_SELECT_ROUTINE parallel.h) (回呼函式

PPARALLEL_TRY_SELECT_ROUTINE類型的回呼例程會選取附加至平行埠的 IEEE 1284.3 套用鏈結裝置或 IEEE 1284 鏈結裝置。 平行埠的系統提供函式驅動程式會提供此例程。

語法

PPARALLEL_TRY_SELECT_ROUTINE PparallelTrySelectRoutine;

NTSTATUS PparallelTrySelectRoutine(
  [in] PVOID TrySelectContext,
  [in] PVOID TrySelectCommand
)
{...}

參數

[in] TrySelectContext

平行埠功能裝置對象的裝置延伸指標, (FDO) 。

[in] TrySelectCommand

PARALLEL_1284_COMMAND 結構的指標。 撥話端指定下列成員:

識別碼

指定 1284.3 裝置標識碼。

CommandFlags

指定下列旗標的位 OR 為零或多個:

Description
PAR_END_OF_CHAIN_DEVICE 指定鏈結結束裝置。
PAR_HAVE_PORT_KEEP_PORT 指定呼叫端已配置埠,並保留配置的埠。

傳回值

傳回碼 Description
STATUS_SUCCESS
已選取裝置。
STATUS_INVALID_PARAMETER
裝置標識碼無效。
STATUS_PENDING
呼叫端未指定PAR_HAVE_PORT_KEEP_PORT,且已配置平行埠。
STATUS_UNSUCCESSFUL
呼叫端已配置平行埠,但系統提供的平行埠函式驅動程式無法選取指定的平行裝置。

備註

若要取得系統提供的PPARALLEL_TRY_SELECT_ROUTINE回呼指標,核心模式驅動程式會使用傳回PARALLEL_PNP_INFORMATION結構的IOCTL_INTERNAL_GET_PARALLEL_PNP_INFO要求。 PARALLEL_PNP_INFORMATION 結構的 TrySelectDevice 成員是這個回呼的指標。

核心模式驅動程式可以使用 IOCTL_INTERNAL_SELECT_DEVICE 要求或 PPARALLEL_TRY_SELECT_ROUTINE 回呼,在平行埠上選取平行裝置。 如果已配置平行埠,則平行埠函式驅動程式會將選取要求排入佇列。 不過, PPARALLEL_TRY_SELECT_ROUTINE 回呼不會將選取要求排入佇列,而且如果無法配置埠,則例程會立即傳回。

注意 如果用戶端只使用 PPARALLEL_TRY_SELECT_ROUTINE 回呼來嘗試選取平行裝置,而其他用戶端正爭用平行埠,則系統提供的平行埠函式驅動程式可能永遠不會將埠配置給用戶端。 為了確保成功,客戶端必須使用 IOCTL_INTERNAL_SELECT_DEVICE 要求。 (平行埠函式驅動程式佇列,以及後續處理埠配置要求和裝置選取要求的順序。)
 
如需詳細資訊,請參閱 選取和取消選取附加至 ParallelPort 的 IEEE 1284 裝置

規格需求

需求
目標平台 桌面
標頭 parallel.h (包括 Parallel.h)
IRQL <=DISPATCH_LEVEL

另請參閱

PARALLEL_1284_COMMAND

IOCTL_INTERNAL_GET_PARALLEL_PORT_INFO

IOCTL_INTERNAL_SELECT_DEVICE

IOCTL_INTERNAL_DESELECT_DEVICE

PARALLEL_PNP_INFORMATION

PPARALLEL_DESELECT_ROUTINE