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 디바이스 ID를 지정합니다.
CommandFlags
다음 플래그 중 비트 OR(0 이상)을 지정합니다.
값 | 묘사 |
---|---|
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