FindFirstPrinterChangeNotification 함수

FindFirstPrinterChangeNotification 함수는 변경 알림 개체를 만들고 개체에 대 한 핸들을 반환 합니다. 그런 다음 wait 함수 중 하나에 대 한 호출에서이 핸들을 사용 하 여 프린터나 인쇄 서버에 대 한 변경 내용을 모니터링할 수 있습니다.

FindFirstPrinterChangeNotification 호출은 모니터링할 변경의 유형을 지정 합니다. 변경에 대해 모니터링할 조건 집합, 모니터링할 프린터 정보 필드 집합 또는 둘 다를 지정할 수 있습니다.

지정 된 프린터 또는 인쇄 서버에서 지정 된 변경 내용 중 하나가 발생 하면 변경 알림 처리에 대 한 대기 작업이 성공 합니다. 그런 다음 FindNextPrinterChangeNotification 함수를 호출 하 여 변경에 대 한 정보를 검색 하 고 다음 대기 작업에서 사용할 변경 알림 개체를 다시 설정 합니다.

구문

HANDLE FindFirstPrinterChangeNotification(
  _In_     HANDLE hPrinter,
           DWORD  fdwFilter,
           DWORD  fdwOptions,
  _In_opt_ LPVOID pPrinterNotifyOptions
);

매개 변수

Hprinter [ 진행]

모니터링 하려는 프린터나 인쇄 서버에 대 한 핸들입니다. Openprinter 또는 addprinter 함수를 사용 하 여 프린터 핸들을 검색 합니다.

fdwFilter

변경 알림 개체가 신호를 받은 상태로 전환 될 조건입니다. 지정 된 조건 중 하나 이상이 충족 되 면 변경 알림이 발생 합니다. PPrinterNotifyOptionsNULL 이 아닌 경우 fdwfilter 매개 변수는 0이 될 수 있습니다.

이 매개 변수는 다음 값 중 하나 이상이 될 수 있습니다.

의미
프린터 _ 변경 _ 양식
폼에 대 한 변경 내용을 알립니다. 이 일반 플래그를 설정 하거나 다음의 특정 플래그를 하나 이상 설정할 수 있습니다.
프린터 _ 변경 _ _ 양식 추가
프린터 _ 변경 _ 집합 _ 양식
프린터 _ 변경 _ 삭제 _ 양식
프린터 _ 변경 _ 작업
작업에 대 한 변경 내용을 알립니다. 이 일반 플래그를 설정 하거나 다음의 특정 플래그를 하나 이상 설정할 수 있습니다.
프린터 _ 변경 _ _ 작업 추가
프린터 _ 변경 _ 집합 _ 작업
프린터 _ 변경 _ 삭제 _ 작업
프린터 _ 변경 _ 쓰기 _ 작업
프린터 _ 변경 _ 포트
포트에 대 한 변경 내용을 알립니다. 이 일반 플래그를 설정 하거나 다음의 특정 플래그를 하나 이상 설정할 수 있습니다.
프린터 _ 변경 _ _ 포트 추가
프린터 _ 변경 _ 구성 _ 포트
프린터 _ 변경 _ _ 포트 삭제
프린터 _ 변경 _ 인쇄 _ 프로세서
인쇄 처리기에 대 한 변경 내용을 알립니다. 이 일반 플래그를 설정 하거나 다음의 특정 플래그를 하나 이상 설정할 수 있습니다.
프린터 _ 변경 _ _ 인쇄 _ 처리기 추가
프린터 _ 변경 _ _ 인쇄 _ 프로세서 삭제
프린터 프린터 _ 변경 _
프린터에 대 한 변경 내용을 알립니다. 이 일반 플래그를 설정 하거나 다음의 특정 플래그를 하나 이상 설정할 수 있습니다.
프린터 _ 변경 _ _ 프린터 추가
프린터 _ 변경 _ 집합 _ 프린터
프린터 _ 변경 _ _ 프린터 삭제
프린터 _ 변경 _ 실패 _ 연결 _ 프린터
프린터 _ _ 드라이버 변경 _
프린터 드라이버에 대 한 변경 내용을 알립니다. 이 일반 플래그를 설정 하거나 다음의 특정 플래그를 하나 이상 설정할 수 있습니다.
프린터 _ 변경 _ _ 프린터 _ 드라이버 추가
프린터 _ 변경 _ 집합 _ 프린터 _ 드라이버
프린터 _ 변경 _ _ 프린터 _ 드라이버 삭제
프린터 _ _ 모두 변경
위의 변경 내용이 발생 하는 경우 알립니다.
프린터 _ 변경 _ 서버
Windows 7: 서버에 대 한 변경 내용을 알립니다.
이 플래그는 프린터 _ 변경 _ 모두 값을 설정 하 여 모니터링 되는 변경 내용에 포함 되지 않습니다.

위의 표에 있는 보다 구체적인 플래그에 대 한 설명은 FindNextPrinterChangeNotification 함수를 참조 하세요.

fdwOptions

알림이 작동 하는 프린터 범주를 결정 하는 플래그입니다.

의미
프린터 _ _범주 _ 모두
0x001000
에 알림
FindNextPrinterChangeNotification 는 2D 및 3d 프린터에 대 한 알림을 반환 합니다.
프린터 _ _범주 _ 3d
0x002000
에 알림
FindNextPrinterChangeNotification 는 3d 프린터에 대해서만 알림을 반환 합니다.

이 플래그가 0으로 설정 되 면 FindFirstPrinterChangeNotification 는 2d 프린터에 대해서만 작동 합니다. 이것은 기본값입니다.

pPrinterNotifyOptions [ 에서, 선택 사항]

프린터 _ 알림 _ 옵션 구조에 대 한 포인터입니다. 이 구조체의 Ptypes 멤버는 각각 모니터링할 프린터 정보 필드를 지정 하는 하나 이상의 프린터 _ 알림 _ 옵션 _ 유형 구조 배열입니다. 하나 이상의 지정 된 필드가 변경 되 면 변경 알림이 발생 합니다. 변경이 발생 하면 FindNextPrinterChangeNotification 함수는 새 프린터 정보를 검색할 수 있습니다. Fdwfilter 가 0이 아닌 경우이 매개 변수는 NULL 일 수 있습니다.

모니터링할 수 있는 필드 목록은 프린터 _ 알림 _ 옵션 _ 유형을 참조 하세요.

반환 값

함수가 성공 하면 반환 값은 지정 된 프린터나 인쇄 서버와 연결 된 변경 알림 개체에 대 한 핸들입니다.

함수가 실패 하면 반환 값은 잘못 된 _ 핸들 값입니다 _ .

설명

참고

이 함수는 차단 또는 동기 함수 이며 즉시 반환 되지 않을 수 있습니다. 이 함수가 반환 하는 속도는 응용 프로그램을 작성할 때 예측 하기 어려운 네트워크 상태, 인쇄 서버 구성 및 프린터 드라이버 구현 요소와 같은 런타임 요인에 따라 달라 집니다. 사용자 인터페이스와의 상호 작용을 관리 하는 스레드에서이 함수를 호출 하면 응용 프로그램이 응답 하지 않는 것 처럼 보일 수 있습니다.

프린터나 인쇄 서버를 모니터링 하려면 FindFirstPrinterChangeNotification 함수를 호출한 다음 wait 함수중 하나에 대 한 호출에서 반환 된 변경 알림 개체 핸들을 사용 합니다. 변경 알림 개체가 신호를 받은 상태로 들어가면 변경 알림 개체에 대 한 대기 작업이 충족 됩니다. 시스템은 Fdwfilter 또는 pPrinterNotifyOptions 에서 지정 된 변경 중 하나 이상이 모니터링 되는 프린터나 인쇄 서버에서 발생 하는 경우 개체에 신호를 보냅니다.

FindFirstPrinterChangeNotification 를 호출 하는 경우 fdwfilter 는 0이 아니어야 하며 pPrinterNotifyOptionsNULL 이 아니어야 합니다. 둘 다 지정 하는 경우 둘 다에 대 한 알림이 발생 합니다.

프린터 변경 알림 개체의 대기 작업이 충족 되 면 FindNextPrinterChangeNotification 함수를 호출 하 여 알림의 원인을 확인 하십시오. Fdwfilter 로 지정 된 조건의 경우 FindNextPrinterChangeNotification 는 변경 된 조건 또는 조건을 보고 합니다. PPrinterNotifyOptions 로 지정 된 프린터 정보 필드의 경우 FindNextPrinterChangeNotification 는 이러한 필드에 대 한 새 정보 뿐만 아니라 변경 된 필드를 보고 합니다. 또한 FindNextPrinterChangeNotification 는 다른 대기 작업에서 프린터 또는 인쇄 서버를 계속 모니터링 하는 데 사용할 수 있도록 변경 알림 개체를 신호 없음으로 상태로 다시 설정 합니다.

한 가지 예외를 제외 하 고, 변경 알림 개체가 신호를 받지 않은 상태에 있는 경우 FindNextPrinterChangeNotification 함수를 호출 하지 마세요. Wait 함수에서 WAIT _ 시간 제한 값을 반환 하는 경우 변경 개체는 신호를 받은 상태가 아닙니다. 대기 함수가 시간 초과 없이 성공 하는 경우에만 FindNextPrinterChangeNotification 함수를 호출 합니다. FindNextPrinterChangeNotification 가 _ _ _ pPrinterNotifyOptions 매개 변수에 설정 된 프린터 알림 옵션 새로 고침 비트를 사용 하 여 호출 되는 경우는 예외입니다.

변경 알림 개체가 더 이상 필요 하지 않은 경우 FindClosePrinterChangeNotification 함수를 호출 하 여 닫습니다.

FindFirstPrinterChangeNotification 의 호출자는 FindClosePrinterChangeNotification 를 호출할 때까지 FindFirstPrinterChangeNotification 에 전달 된 프린터 핸들을 계속 사용할 수 있도록 해야 합니다. 프린터 변경 알림 처리 전에 프린터 핸들이 닫히면 추가 알림이 전달 되지 않습니다.

FindFirstPrinterChangeNotification 는 3d 프린터에 대 한 변경 알림을 서버 핸들로 보내지 않습니다.

참고

Windows XP SP2 (서비스 팩 2) 이상에서 ICF (인터넷 연결 방화벽)는 기본적으로 프린터 포트를 차단 하지만 파일 및 인쇄 공유에 대 한 예외는 사용 하도록 설정할 수 있습니다. 사용자가 다른 컴퓨터에 프린터를 연결 하는 경우 예외를 사용 하도록 설정 하지 않으면 사용자가 서버에서 프린터 변경 알림을 받지 못합니다. 컴퓨터 관리자가 예외를 사용 하도록 설정 해야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows 2000 Professional [데스크톱 앱만]
지원되는 최소 서버
Windows 2000 Server [데스크톱 앱만]
헤더
Winspool (Windows 포함)
라이브러리
Winspool .lib
DLL
Spoolss.dll

참고 항목

인쇄

인쇄 스풀러 API 함수

FindClosePrinterChangeNotification

FindNextPrinterChangeNotification

OpenPrinter

프린터 _ 알림 _ 옵션

프린터 _ 알림 _ 옵션 _ 유형