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 구조체에 대한 포인터입니다. 호출자는 다음 멤버를 지정합니다.
ID
1284.3 디바이스 ID를 지정합니다.
CommandFlags
다음 플래그 중 0개 이상의 비트 OR을 지정합니다.
값 | Description |
---|---|
PAR_END_OF_CHAIN_DEVICE | 체인 끝 디바이스를 지정합니다. |
PAR_HAVE_PORT_KEEP_PORT | 호출자에게 할당된 포트가 있고 포트를 할당된 상태로 유지하도록 지정합니다. |
반환 값
반환 코드 | 설명 |
---|---|
|
디바이스가 선택되었습니다. |
|
디바이스 ID가 잘못되었습니다. |
|
호출자가 PAR_HAVE_PORT_KEEP_PORT 지정하지 않았으며 병렬 포트가 이미 할당되었습니다. |
|
호출자가 병렬 포트를 할당했지만 병렬 포트에 대해 시스템에서 제공하는 함수 드라이버가 지정된 병렬 디바이스를 선택할 수 없습니다. |
설명
시스템에서 제공하는 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 콜백은 선택 요청을 큐에 대기시키지 않으며 포트를 할당할 수 없는 경우 루틴이 즉시 반환됩니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 데스크톱 |
머리글 | parallel.h(Parallel.h 포함) |
IRQL | <=DISPATCH_LEVEL |
추가 정보
IOCTL_INTERNAL_GET_PARALLEL_PORT_INFO