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 為零或多個:
價值 | 描述 |
---|---|
PAR_END_OF_CHAIN_DEVICE | 指定鏈結結束裝置。 |
PAR_HAVE_PORT_KEEP_PORT | 指定呼叫端已配置埠,並保留配置埠。 |
傳回值
傳回碼 | 描述 |
---|---|
|
已選取裝置。 |
|
裝置標識碼無效。 |
|
呼叫端未指定PAR_HAVE_PORT_KEEP_PORT,而且已配置平行埠。 |
|
呼叫端已配置平行埠,但系統提供的平行埠函式驅動程式無法選取指定的平行裝置。 |
言論
若要取得系統提供的 PPARALLEL_TRY_SELECT_ROUTINE 回呼指標,內核模式驅動程式會使用傳回 PARALLEL_PNP_INFORMATION 結構的 IOCTL_INTERNAL_GET_PARALLEL_PNP_INFO 要求。 TrySelectDevice PARALLEL_PNP_INFORMATION 結構的成員是這個回呼的指標。
內核模式驅動程式可以使用 IOCTL_INTERNAL_SELECT_DEVICE 要求或 PPARALLEL_TRY_SELECT_ROUTINE 回呼,在平行埠上選取平行裝置。 如果已配置平行埠,平行埠函式驅動程式會將選取要求排入佇列。 不過,PPARALLEL_TRY_SELECT_ROUTINE 回呼不會將選取要求排入佇列,如果無法配置埠,則例程會立即傳回。
注意 如果用戶端只使用 PPARALLEL_TRY_SELECT_ROUTINE 回呼來嘗試選取平行裝置,而其他用戶端則爭用平行埠,則平行埠的系統提供函式驅動程式可能永遠不會將埠配置給用戶端。 若要確保成功,客戶端必須使用 IOCTL_INTERNAL_SELECT_DEVICE 要求。 (平行埠函式驅動程式佇列,並後續處理埠配置要求和裝置選取要求的順序,以接收選取裝置要求的順序。
要求
要求 | 價值 |
---|---|
目標平臺 | 桌面 |
標頭 | parallel.h (include Parallel.h) |
IRQL | <=DISPATCH_LEVEL |
另請參閱
IOCTL_INTERNAL_GET_PARALLEL_PORT_INFO