다음을 통해 공유


애플리케이션 검증 도구 - 코드 중지 - 인쇄

다음 중지 코드는 이 테스트 집합에 포함되어 있습니다.

유출된 프린터 핸들이 감지됨

가능한 원인

응용 프로그램이 종료될 때 열린 프린터 핸들이 검색되었습니다. 대부분의 경우 만들기 스레드는 ClosePrinter()를 호출하여 프린터 핸들을 닫지 않았습니다. 이 중지 문제를 해결하려면 이 검증 도구 중지의 두 번째 매개 변수를 사용하여 프린터 핸들을 연 스레드를 확인하여 스택 추적을 제공합니다. 디버거에서 dps 명령을 사용하여 스택 추적을 덤프합니다. vfPrint를 호출한 첫 번째 비-winspool 및 비 vfPrint 모듈 이름을 찾습니다. VfHookOpenPrinter* 또는 vfPrint! VfHookAddPrinter* - 일반적으로 목록의 4번째 또는 6번째 스택 프레임입니다.

Application Verifier에서 표시하는 정보
  • 매개 변수 1  프린터  핸들이 유출되었습니다.
  • 매개 변수 2 - 초기화 스택 추적입니다. 이 매개 변수가 NULL이 아닌 경우 dps를 사용하여 스택을 덤프합니다.
  • 핸들을 연 스레드의 매개 변수 3 - 스레드 ID입니다.
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintAPI
  • 중지 ID: LEAKED_PRINTER_HANDLE
  • 중지 코드: 0000A000
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

유출된 프린터 변경 알림 핸들이 감지됨

가능한 원인

응용 프로그램을 종료할 때 닫혀 있지 않은 프린터 변경 알림 핸들이 검색되었습니다. 핸들을 연 스레드가 FindClosePrinterChangeNotification()을 호출하여 스레드가 종료되기 전에 핸들을 닫지 않았을 가능성이 큽니다. 이 중지 문제를 해결하려면 프린터 변경 알림 핸들을 연 스레드를 확인합니다. 이 중지의 두 번째 매개 변수는 스택 주소를 제공합니다. dps 명령을 사용하여 스택 추적을 덤프합니다. vfPrint를 호출한 첫 번째 비-winspool 및 비 vfPrint 모듈 이름을 찾습니다. VfHookFindFirstPrinterChangeNotification. 일반적으로 4번째 스택 프레임에서 찾을 수 있습니다.

Application Verifier에서 표시하는 정보
  • 매개 변수 1  프린터  변경 알림 핸들이 유출되었습니다.
  • 매개 변수 2 - 초기화 스택 추적입니다. dps를 사용하여 NULL이 아닌 경우 스택 추적을 덤프합니다.
  • 매개 변수를 사용하는 마지막 스레드의 매개 변수 3 - 스레드 ID입니다.
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintAPI
  • 중지 ID: LEAKED_PRINTER_CHANGE_NOTIFICATION_HANDLE
  • 중지 코드: 0000A001
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

유출된 PRINTER_NOTIFY_INFO 감지됨

가능한 원인

프로그램이 종료될 때 해제되지 않은 할당된 PRINTER_NOTIFY_INFO 개체가 검색되었습니다. 대부분의 경우 종료하기 전에 FreePrinterNotifyInfo()를 호출하여 해제해야 합니다. 이 중지 문제를 해결하려면 이 검증 도구 중지의 두 번째 매개 변수를 사용하여 winspool을 호출하여 PRINTER_NOTIFY_INFO 개체를 대신 할당하는 루틴을 결정합니다. 디버거에서 dps 명령을 사용하여 초기화 스택 추적을 덤프합니다. vfPrint를 호출한 첫 번째 비-winspool 및 비 vfPrint 모듈 이름을 찾습니다. VfHookFindNextPrinterChangeNotification. 이 루틴은 일반적으로 세 번째 스택 프레임에서 찾을 수 있습니다.

Application Verifier에서 표시하는 정보
  • 매개 변수 1 -  유출된 PRINTER_NOTIFY_INFO 개체에 대한 포인터입니다.
  • 매개 변수 2 - 초기화 스택 추적입니다. dps를 사용하여 NULL이 아닌 경우 스택 추적을 덤프합니다.
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintAPI
  • 중지 ID: LEAKED_PPRINTER_NOTIFY_INFO
  • 중지 코드: 0000A002
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

프린터 핸들을 사용하는 동안 경합 상태가 감지됨

가능한 원인

여러 스레드에서 동시에 프린터 핸들을 사용하고 있습니다. 프린터 핸들은 스레드로부터 안전하지 않으므로 애플리케이션 수준 동기화 없이는 여러 스레드에서 프린터 핸들을 동시에 사용하여 핸들에 대한 액세스를 안전하게 조정할 수 없습니다. 애플리케이션은 각 스레드에서 별도의 프린터 핸들을 열거나 Win32 동기화 API를 사용하여 프린터 핸들에 대한 사용자 지정 동기화 액세스를 제공해야 합니다. Win32 동기화 API는 다음에서 자세히 설명합니다. https://learn.microsoft.com/windows/win32/sync/synchronization-functions.

Application Verifier에서 표시하는 정보
  • 액세스 중인 매개 변수 1  프린터  핸들입니다.
  • 매개 변수 2 - 현재 스레드 ID입니다.
  • 동시 스레드의 매개 변수 3 - 스레드 ID입니다.
  • 매개 변수 4  동시 성 수입니다.

추가 정보
  • 테스트 계층: PrintAPI
  • 중지 ID: MULTITHREADED_ACCESS_TO_PRINTER_HANDLE
  • 중지 코드: 0000A003
  • 심각도: 경고
  • 일회성 오류: 아니요
  • 오류 보고서: 없음
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

프린터 핸들에 대한 잠재적 다중 스레드 액세스가 감지됨

가능한 원인

프린터 핸들을 만든 스레드와 다른 스레드에서 사용되었습니다. 프린터 핸들은 스레드로부터 안전하지 않으므로 애플리케이션 수준 동기화 없이는 여러 스레드에서 프린터 핸들을 동시에 사용하여 핸들에 대한 액세스를 안전하게 조정할 수 없습니다. 애플리케이션은 각 스레드에서 별도의 프린터 핸들을 열거나 Win32 동기화 API를 사용하여 프린터 핸들에 대한 사용자 지정 동기화 액세스를 제공해야 합니다. Win32 동기화 API는 다음에서 자세히 설명합니다. https://learn.microsoft.com/windows/win32/sync/synchronization-functions.

Application Verifier에서 표시하는 정보
  • 액세스 중인 매개 변수 1  프린터  핸들입니다.
  • 초기화 스레드의 매개 변수 2 - 스레드 ID입니다.
  • 초기화의 매개 변수 3 - 스택 추적입니다.
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintAPI
  • 중지 ID: PRINTER_HANDLE_ACCESSED_NOT_ON_THE_THREAD_THAT_OPENED_IT
  • 중지 코드: 0000A004
  • 심각도: 경고
  • 일회성 오류: 아니요
  • 오류 보고서: 없음
  • 파일에 로그온: 아니요
  • 백트레이스 만들기: 아니요

닫힌 프린터 핸들 사용 시도

가능한 원인

프린터 핸들이 닫힌 후 사용되었습니다. 닫힌 프린터 핸들을 사용하려는 루틴을 식별하려면 디버거에서 'k' 명령을 사용하여 현재 스택 추적을 덤프합니다. 핸들을 닫은 루틴의 스택 추적을 덤프하려면 중지의 두 번째 매개 변수와 함께 dps 명령을 사용합니다.

Application Verifier에서 표시하는 정보
  • 액세스 중인 매개 변수 1  프린터  핸들입니다.
  • 닫기의 매개 변수 2 - 스택 추적입니다. dps를 사용하여 NULL이 아닌 경우 스택 추적을 덤프합니다.
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintAPI
  • 중지 ID: PRINTER_HANDLE_ALREADY_CLOSED
  • 중지 코드: 0000A005
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

알 수 없는 프린터 핸들 사용 시도

가능한 원인

OpenPrinterA, OpenPrinterW, OpenPrinter2W(Windows Vista), AddPrinterA 또는 AddPrinterW를 호출하여 열지 않은 프린터 핸들을 사용하려고 했습니다. 이 작업을 시도한 루틴의 스택 추적을 보려면 디버거에서 'k' 명령을 사용합니다.

Application Verifier에서 표시하는 정보
  • 액세스 중인 매개 변수 1  프린터  핸들입니다.
  • 매개 변수 2 - 사용되지 않음
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintAPI
  • 중지 ID: INVALID_PRINTER_HANDLE
  • 중지 코드: 0000A006
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

닫힌 프린터 변경 알림 핸들 사용 시도

가능한 원인

프린터 변경 알림 핸들이 닫힌 후 사용되었습니다. 닫힌 프린터 변경 알림 핸들을 사용하려는 루틴을 보려면 디버거에서 'k' 명령을 사용하여 현재 스택 추적을 덤프합니다. 핸들을 닫은 루틴의 스택 추적을 덤프하려면 중지의 두 번째 매개 변수와 함께 dps 명령을 사용합니다.

Application Verifier에서 표시하는 정보
  • 액세스 중인 매개 변수 1  프린터  변경 알림 핸들입니다.
  • 닫기의 매개 변수 2 - 스택 추적입니다. dps를 사용하여 NULL이 아닌 경우 스택 추적을 덤프합니다.
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintAPI
  • 중지 ID: PRINTER_CHANGE_NOTIFICATION_HANDLE_ALREADY_CLOSED
  • 중지 코드: 0000A007
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

잘못된 프린터 변경 알림 핸들을 사용하려고 시도합니다.

가능한 원인

FindFirstPrinterChangeNotification Win32 API 함수로 열리지 않은 핸들이 프린터 변경 알림 핸들로 전달되었습니다. 이 작업을 시도한 루틴의 스택 추적을 보려면 디버거에서 'k' 명령을 사용합니다.

Application Verifier에서 표시하는 정보
  • 액세스 중인 매개 변수 1  프린터  변경 알림 핸들입니다.
  • 매개 변수 2 - 사용되지 않음
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintAPI
  • 중지 ID: UNKNOWN_PRINTER_CHANGE_NOTIFICATION_HANDLE
  • 중지 코드: 0000A008
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

해제된 PRINTER_NOTIFY_INFO 개체 사용 시도

가능한 원인

PRINTER_NOTIFY_INFO 개체가 해제된 후 사용되었습니다. 해제된 PRINTER_NOTIFY_INFO 개체를 사용하려는 루틴을 보려면 디버거에서 'k' 명령을 사용하여 현재 스택 추적을 덤프합니다. 핸들을 닫은 루틴의 스택 추적을 덤프하려면 중지의 두 번째 매개 변수와 함께 dps 명령을 사용합니다.

Application Verifier에서 표시하는 정보
  • 액세스 중인 PRINTER_NOTIFY_INFO 매개 변수 1 - 주소입니다.
  • 닫기의 매개 변수 2 - 스택 추적입니다. dps를 사용하여 NULL이 아닌 경우 스택 추적을 덤프합니다.
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintAPI
  • 중지 ID: PRINTER_NOTIFY_INFO_ALREADY_FREED
  • 중지 코드: 0000A009
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

잘못된 PRINTER_NOTIFY_INFO 개체를 사용하려고 시도합니다.

가능한 원인

FindNextPrinterChangeNotification Win32 API 함수에서 PRINTER_NOTIFY_INFO 개체를 열지 않았습니다. 이 작업을 시도한 루틴의 스택 추적을 보려면 디버거에서 'k' 명령을 사용합니다.

Application Verifier에서 표시하는 정보
  • 액세스 중인 PRINTER_NOTIFY_INFO 매개 변수 1 - 주소입니다.
  • 매개 변수 2 - 사용되지 않음
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintAPI
  • 중지 ID: INVALID_PRINTER_NOTIFY_INFO
  • 중지 코드: 0000A00A
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

열려 있는 프린터 핸들이 너무 많습니다.

가능한 원인

프린터 핸들이 너무 많이 열렸습니다. 리소스 누수가 있을 수 있습니다.

Application Verifier에서 표시하는 정보
  • 매개 변수 1 - 현재 열려 있는 프린터 핸들의 수입니다.
  • 매개 변수 2 - 사용되지 않음
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintAPI
  • 중지 ID: TOO_MANY_OPENED_PRINTER_HANDLES
  • 중지 코드: 0000A00B
  • 심각도: 경고
  • 일회성 오류: 아니요
  • 오류 보고서: 없음
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

OpenPrinter2W는 이전 버전의 Windows의 winspool.drv에서 내보내지는 것 같습니다.

가능한 원인

‘알 수 없음’. 이 오류를 Microsoft에 보고합니다.

Application Verifier에서 표시하는 정보
  • 매개 변수 1 - 사용되지 않음
  • 매개 변수 2 - 사용되지 않음
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintAPI
  • 중지 ID: WINSPOOL_OPENPRINTER2W_EXPORTED_ON_PRE_VISTA_OS
  • 코드 중지: 0000A00C
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

열려 있는 PrintTicket 공급자 핸들이 너무 많습니다(HPTPROVIDER)

가능한 원인

PTOpenProvider(Ex)를 호출하여 PrintTicket 공급자 핸들이 너무 많이 열렸습니다. 핸들이 더 이상 필요하지 않을 때 PTCloseProvider를 호출하지 않아 리소스 누수가 발생할 수 있습니다.

Application Verifier에서 표시하는 정보
  • 매개 변수 1 - 현재 열려 있는 PrintTicket 공급자 핸들의 수입니다.
  • 매개 변수 2 - 사용되지 않음
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintAPI
  • 중지 ID: TOO_MANY_OPENED_PRINT_TICKET_PROVIDER_HANDLES
  • 코드 중지: 0000A00D
  • 심각도: 경고
  • 일회성 오류: 아니요
  • 오류 보고서: 없음
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

닫힌 PrintTicket 공급자 핸들 사용 시도(HPTPROVIDER)

가능한 원인

PrintTicket 공급자 핸들이 해제된 후 사용되었습니다. 닫힌 PrintTicket 공급자 처리기를 사용하려는 루틴을 보려면 디버거에서 'k' 명령을 사용하여 현재 스택 추적을 덤프합니다. 핸들을 닫은 루틴의 스택 추적을 덤프하려면 중지의 두 번째 매개 변수와 함께 dps 명령을 사용합니다.

Application Verifier에서 표시하는 정보
  • 액세스 중인 매개 변수 1-HPTPROVIDER   핸들입니다.
  • 닫기의 매개 변수 2 - 스택 추적입니다. dps를 사용하여 NULL이 아닌 경우 스택 추적을 덤프합니다.
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintAPI
  • 중지 ID: PRINT_TICKET_PROVIDER_HANDLE_ALREADY_CLOSED
  • 중지 코드: 0000A00E
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

알 수 없는 PrintTicket 공급자 핸들 사용 시도(HPTPROVIDER)

가능한 원인

PTOpenProvider 또는 PTOpenProviderEx를 호출하여 열지 않은 PrintTicket 공급자 핸들이 사용되었습니다.

Application Verifier에서 표시하는 정보
  • 액세스 중인 매개 변수 1-HPTPROVIDER   핸들입니다.
  • 매개 변수 2 - 사용되지 않음
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintAPI
  • 중지 ID: UNKNOWN_PRINT_TICKET_PROVIDER_HANDLE
  • 중지 코드: 0000A00F
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

PrintTicket 공급자 핸들을 사용하는 동안 경합 상태가 감지됨

가능한 원인

PrintTicket 공급자 핸들이 여러 스레드에서 동시에 사용되고 있었습니다. 이를 위해서는 핸들에 대한 액세스의 애플리케이션 수준 동기화가 필요합니다. PrintTicket 공급자 핸들은 스레드로부터 안전하지 않으므로 여러 스레드에서 PrintTicket 공급자 핸들을 동시에 사용할 수 없습니다. 대신 애플리케이션은 각 스레드에서 별도의 PrintTicket 공급자 핸들을 열거나 Win32 동기화 API를 사용하여 PrintTicket 공급자 핸들에 대한 사용자 지정 동기화 액세스를 제공해야 합니다. Win32 동기화 API는 다음에서 자세히 설명합니다. https://learn.microsoft.com/windows/win32/sync/synchronization-functions.

Application Verifier에서 표시하는 정보
  • 액세스 중인 매개 변수 1-PrintTicket   공급자 핸들입니다.
  • 매개 변수 2 - 현재 스레드 ID입니다.
  • 동시 스레드의 매개 변수 3 - 스레드 ID입니다.
  • 매개 변수 4  동시 성 수입니다.

추가 정보
  • 테스트 계층: PrintAPI
  • 중지 ID: MULTITHREADED_ACCESS_TO_PRINT_TICKET_PROVIDER_HANDLE
  • 중지 코드: 0000A010
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

PrintTicket 공급자 핸들에 대한 잠재적 다중 스레드 액세스가 감지됨

가능한 원인

이는 PrintTicket 공급자 핸들을 만든 스레드와 다른 스레드에서 사용되었다는 경고입니다. 핸들에 안전하게 액세스하려면 애플리케이션 수준 동기화가 필요할 수 있습니다. PrintTicket 공급자 핸들은 스레드로부터 안전하지 않으므로 여러 스레드에서 PrintTicket 공급자 핸들을 동시에 사용할 수 없습니다. 대신 애플리케이션은 각 스레드에서 별도의 PrintTicket 공급자 핸들을 열거나 Win32 동기화 API를 사용하여 PrintTicket 공급자 핸들에 대한 사용자 지정 동기화 액세스를 제공해야 합니다. Win32 동기화 API는 다음에서 자세히 설명합니다. https://learn.microsoft.com/windows/win32/sync/synchronization-functions.

Application Verifier에서 표시하는 정보
  • 액세스 중인 매개 변수 1-PrintTicket   공급자 핸들입니다.
  • 초기화 스레드의 매개 변수 2 - 스레드 ID입니다.
  • 초기화의 매개 변수 3 - 스택 추적입니다.
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintAPI
  • 중지 ID: PRINT_TICKET_PROVIDER_HANDLE_ACCESSED_NOT_ON_THE_THREAD_THAT_OPENED_IT
  • 중지 코드: 0000A011
  • 심각도: 경고
  • 일회성 오류: 아니요
  • 오류 보고서: 없음
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

유출된 PrintTicket 공급자 핸들이 감지됨

가능한 원인

스레드가 종료되었을 때 열려 있는 PrintTicket 공급자 핸들이 검색되었습니다. 만들기 루틴은 종료하기 전에 PTCloseProvider()를 호출하여 닫지 않았을 수 있습니다. 이 중지 문제를 해결하려면 이 검증 도구 중지의 두 번째 매개 변수를 사용하여 PrintTicket 공급자 핸들을 연 스레드를 확인하여 스택 추적을 제공합니다. 디버거에서 dps 명령을 사용하여 스택 추적을 덤프합니다. vfPrint라는 첫 번째 비-prntvpt 및 비 vfPrint 모듈 이름을 찾습니다. VfPTOpenProvider 또는 vfPrint! VfPTOpenProviderEx - 일반적으로 목록의 4번째 또는 6번째 스택 프레임입니다.

Application Verifier에서 표시하는 정보
  • 매개 변수 1-PrintTicket   공급자 핸들이 유출됩니다.
  • 매개 변수 2 - 초기화 스택 추적입니다. dps를 사용하여 NULL이 아닌 경우 스택 추적을 덤프합니다.
  • 핸들을 연 스레드의 매개 변수 3 - 스레드 ID입니다.
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintAPI
  • 중지 ID: LEAKED_PRINT_TICKET_PROVIDER_HANDLE
  • 중지 코드: 0000A012
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

열려 있는 프린터 변경 알림 핸들이 너무 많습니다.

가능한 원인

프린터 변경 알림 핸들이 너무 많이 열렸습니다. 리소스 누수가 있을 수 있습니다. 한 가지 일반적인 형태의 리소스 누수는 루틴이 프린터 변경 알림 핸들을 열고 종료하기 전에 닫지 않는 것입니다.

Application Verifier에서 표시하는 정보
  • 매개 변수 1 - 현재 열려 있는 프린터 변경 알림 핸들의 수입니다.
  • 매개 변수 2 - 사용되지 않음
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintAPI
  • 중지 ID: TOO_MANY_OPENED_PRINTER_CHANGE_NOTIFICATION_HANDLES
  • 중지 코드: 0000A013
  • 심각도: 경고
  • 일회성 오류: 아니요
  • 오류 보고서: 없음
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

열려 있는 PRINTER_NOTIFY_INFO 개체가 너무 많습니다.

가능한 원인

너무 많은 PRINTER_NOTIFY_INFO 개체가 열렸습니다. 리소스 누수가 있을 수 있습니다. 리소스 누수의 한 가지 일반적인 형태는 루틴이 PRINTER_NOTIFY_INFO 개체를 열고 종료하기 전에 닫지 않는 것입니다.

Application Verifier에서 표시하는 정보
  • 매개 변수 1 - 현재 열려 있는 PRINTER_NOTIFY_INFO 개체의 수입니다.
  • 매개 변수 2 - 사용되지 않음
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintAPI
  • 중지 ID: TOO_MANY_OPENED_PRINTER_NOTIFY_INFO_OBJECTS
  • 중지 코드: 0000A014
  • 심각도: 경고
  • 일회성 오류: 아니요
  • 오류 보고서: 없음
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

잘못된 PrintTicket 사용 시도

가능한 원인

이 검증 도구 중지는 애플리케이션이 잘못된 PrintTicket을 사용하여 PrintTicket 메서드를 호출할 때 발생합니다.

Application Verifier에서 표시하는 정보
  • 형식: - 애플리케이션이 잘못된 PrintTicket을 사용하여 %lS 메서드를 호출할 때 이 검증 도구 중지가 발생했습니다.
  • PTConform에서 반환된 매개 변수 1  오류  메시지입니다. 이 매개 변수가 NULL이 아닌 경우 du를 사용하여 메시지를 덤프합니다.
  • 매개 변수 2-PrintTicket   XML 텍스트입니다. 이 매개 변수가 NULL이 아닌 경우 du를 사용하여 XML을 덤프합니다.
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintAPI
  • 중지 ID: INVALID_APPLICATION_PRINTTICKET
  • 코드 중지: 0000A015
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

잘못된 PrintCapabilities 문서를 사용하려고 시도합니다.

가능한 원인

이 검증 도구 중지는 애플리케이션이 잘못된 PrintCapabilities 문서를 사용하여 PrintTicket 메서드를 호출할 때 발생합니다.

Application Verifier에서 표시하는 정보
  • 형식: - 애플리케이션이 잘못된 PrintCapabilities 문서를 사용하여 %lS 메서드를 호출할 때 이 검증 도구 중지가 발생했습니다.
  • PTConform에서 반환된 매개 변수 1  오류  메시지입니다. 이 매개 변수가 NULL이 아닌 경우 du를 사용하여 메시지를 덤프합니다.
  • 매개 변수 2-PrintCapabilities   XML 텍스트입니다. 이 매개 변수가 NULL이 아닌 경우 du를 사용하여 XML을 덤프합니다.
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintAPI
  • 중지 ID: INVALID_APPLICATION_PRINTCAPABILITIES
  • 중지 코드: 0000A016
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

PrintTicket 메서드에 잘못된 NULL 인수가 전달되었습니다.

가능한 원인

이 검증 도구 중지는 애플리케이션이 잘못된 NULL 인수를 사용하여 PrintTicket 메서드를 호출할 때 발생합니다.

Application Verifier에서 표시하는 정보
  • 형식: - 이 검증 도구 중지는 애플리케이션이 NULL %lS 인수를 사용하여 %lS 메서드를 호출할 때 발생했습니다.
  • 매개 변수 1 - 사용되지 않음
  • 매개 변수 2 - 사용되지 않음
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintAPI
  • 중지 ID: PRINTTICKET_API_INVALID_NULL_ARGUMENT
  • 중지 코드: 0000A017
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

PTConform에서 예기치 않은 오류가 발생했습니다.

가능한 원인

이 검증 도구 중지는 PrintVerifier가 PrintTicket/PrintCapabilities가 PrintSchema를 준수하는지 확인하는 동안 예기치 않은 오류가 발생할 때 발생합니다. PrintVerifier에서 문제가 될 수 있으므로 이 오류를 Microsoft에 보고합니다.

Application Verifier에서 표시하는 정보
  • 매개 변수 1 - 사용되지 않음
  • 매개 변수 2 - 사용되지 않음
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintAPI
  • 중지 ID: PTCONFORM_UNEXPECTED_ERROR
  • 중지 코드: 0000A018
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

DllMain에서 호출된 잘못된 인쇄 API

가능한 원인

DllMain 내에서 호출되는 것을 지원하지 않는 인쇄 API에 대한 호출이 수행되었습니다. Win32 인쇄 API뿐만 아니라 많은 Win32 API는 DllMain에서 호출할 수 없습니다. 자세한 내용은 MSDN 라이브러리의 DllMain에 대한 설명서를 참조하세요.

Application Verifier에서 표시하는 정보
  • 형식: -  DllMain에서 호출된 인쇄 API: %s
  • 매개 변수 1 - 사용되지 않음
  • 매개 변수 2 - 사용되지 않음
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintAPI
  • 중지 ID: UNSUPPORTED_API_CALL_IN_DLLMAIN
  • 중지 코드: 0000A019
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

유출된 스풀 파일 핸들이 감지됨

가능한 원인

애플리케이션이 종료될 때 열린 스풀 파일 핸들이 검색되었습니다. 대부분의 경우 CloseSpoolFileHandle()이 호출되지 않았습니다. 이 중지 문제를 해결하려면: 프린터 핸들을 연 스레드를 결정합니다. 매개 변수 2가 NULL이 아닌 경우 dps를 사용하여 스택을 덤프합니다. vfPrint를 호출한 첫 번째 비-winspool 및 비 vfPrint 모듈 이름을 찾습니다. VfHookOpenPrinter* 또는 vfPrint! VfHookAddPrinter*. 이 루틴은 일반적으로 목록의 4번째 또는 6번째 스택 프레임입니다.

Application Verifier에서 표시하는 정보
  • 매개 변수 1  핸들 이 유출됩니다.
  • 매개 변수 2 - 초기화 스택 추적입니다. 이 매개 변수가 NULL이 아닌 경우 dps를 사용하여 스택을 덤프합니다.
  • 핸들을 연 스레드의 매개 변수 3 - 스레드 ID입니다.
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintAPI
  • 중지 ID: LEAKED_SPOOL_FILE_HANDLE
  • 중지 코드: 0000A01A
  • 심각도: 경고
  • 일회성 오류: 아니요
  • 오류 보고서: 없음
  • 파일에 로그온: 아니요
  • 백트레이스 만들기: 아니요

닫힌 스풀 파일 핸들 사용 시도

가능한 원인

스풀 파일 핸들은 닫힌 후 사용되었습니다. 이 중지 문제를 해결하려면 디버거에서 'k' 명령을 사용하여 현재 스택 추적을 덤프하여 닫힌 핸들을 사용하려는 루틴을 식별합니다. 중지의 두 번째 매개 변수와 함께 dps 명령을 사용하여 핸들을 닫은 루틴의 스택 추적을 덤프합니다.

Application Verifier에서 표시하는 정보
  • 액세스 중인 매개 변수 1  스 풀 파일 핸들입니다.
  • 닫기의 매개 변수 2 - 스택 추적입니다. dps를 사용하여 NULL이 아닌 경우 스택 추적을 덤프합니다.
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintAPI
  • 중지 ID: SPOOL_FILE_HANDLE_ALREADY_CLOSED
  • 중지 코드: 0000A01B
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

알 수 없는 스풀 파일 핸들 사용 시도

가능한 원인

GetSpoolFileHandle 또는 CommitSpoolData를 호출하여 열지 않은 스풀 파일 핸들을 사용하려고 했습니다. 디버거에서 'k' 명령을 사용하여 이 작업을 시도한 루틴의 스택 추적을 확인합니다.

Application Verifier에서 표시하는 정보
  • 액세스 중인 매개 변수 1  핸들 입니다.
  • 매개 변수 2 - 사용되지 않음
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintAPI
  • 중지 ID: INVALID_SPOOL_FILE_HANDLE
  • 중지 코드: 0000A01C
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

열려 있는 스풀 파일 핸들이 너무 많습니다.

가능한 원인

스풀 파일 핸들이 너무 많이 열렸습니다. 리소스 누수가 있을 수 있습니다.

Application Verifier에서 표시하는 정보
  • 매개 변수 1 - 현재 열려 있는 핸들의 수입니다.
  • 매개 변수 2 - 사용되지 않음
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintAPI
  • 중지 ID: TOO_MANY_OPENED_SPOOL_FILE_HANDLES
  • 중지 코드: 0000A01D
  • 심각도: 경고
  • 일회성 오류: 아니요
  • 오류 보고서: 없음
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

DEVMODE 버퍼 매개 변수는 읽을 수 없는 메모리 페이지에 걸쳐 있습니다.

가능한 원인

이 중지는 DEVMODE 버퍼가 이미 해제되었거나, dmSize 및 dmDriverExtra 멤버에 예상보다 큰 값을 할당하여 DEVMODE 버퍼가 잘못 생성되었거나, NULL이 아닌 버퍼가 필요한 경우 NULL devmode 버퍼가 사용된 여러 조건으로 인해 발생할 수 있습니다.

Application Verifier에서 표시하는 정보
  • 형식: -  이 검증 도구 중지는 잘못된 DEVMODE 버퍼를 사용하여 인쇄 하위 시스템을 호출한 소프트웨어 구성 요소로 인해 발생했습니다. 현재 스택 추적을 검토하고 devmode의 할당, 생성 및 수명을 확인하여 버그 위치를 식별합니다.
  • 매개 변수 1  -  잘못된 DEVMODE 버퍼
  • 매개 변수 2  -  devmode dmSize 및 dmDriverExtra 필드에서 계산된 총 버퍼 크기입니다. 버퍼가 읽을 수 없는 메모리에 완전히 있는 경우 0입니다.
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintAPI
  • 중지 ID: DEVMODE_BUFFER_SPANS_IN_NON_READABLE_MEMORY_PAGE
  • 중지 코드: 0000A01E
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

활성 COM 콜백을 사용하여 모듈을 언로드합니다.

가능한 원인

대상 모듈이 언로드되는 동안 COM 인터페이스의 양의 리포지션이 검색되었습니다. 모듈에서 DllCanUnloadNow 내보내기의 잘못된 구현 또는 잘못된 참조 계산으로 인해 발생할 수 있습니다.

Application Verifier에서 표시하는 정보
  • 형식: -  시스템이 여전히 %lS 포인터를 보유하는 동안 이 검증 도구 중지는 %lS 모듈 언로드로 인해 발생했습니다.
  • 매개 변수 1-COM   인터페이스 주소입니다.
  • 콜백이 제공된 매개 변수 2 - 스택 추적입니다. dps를 사용하여 NULL이 아닌 경우 스택 추적을 덤프합니다.
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintAPI
  • 중지 ID: MODULE_UNLOAD
  • 중지 코드: 0000A01F
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

RegisterForPrintAsyncNotifications에서 반환된 비동기 알림 핸들이 제대로 릴리스되지 않았습니다.

가능한 원인

RegisterForPrintAsyncNotifications API 함수에 의해 할당된 핸들은 프로그램이 종료될 때까지 해제되지 않았습니다. 대부분의 경우 종료하기 전에 UnRegisterForPrintAsyncNotifications()를 호출하여 릴리스해야 합니다. 이 중지 문제를 해결하려면 이 검증 도구 중지의 두 번째 매개 변수를 사용하여 winspool을 호출하여 핸들을 대신 할당하는 루틴을 결정합니다. 디버거에서 dps 명령을 사용하여 초기화 스택 추적을 덤프합니다. vfPrint를 호출한 첫 번째 비-winspool 및 비 vfPrint 모듈 이름을 찾습니다. VfHookRegisterForPrintAsyncNotifications. 이 루틴은 일반적으로 세 번째 스택 프레임에서 찾을 수 있습니다.

Application Verifier에서 표시하는 정보
  • 매개 변수 1  핸들  값입니다.
  • 매개 변수 2 - 초기화 스택 추적입니다. dps를 사용하여 NULL이 아닌 경우 스택 추적을 덤프합니다.
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintAPI
  • 중지 ID: LEAKED_ASYNC_NOTIFY_HANDLE
  • 중지 코드: 0000A020
  • 심각도: 경고
  • 일회성 오류: 아니요
  • 오류 보고서: 없음
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

UnRegisterForPrintAsyncNotifications에서 잘못된 핸들을 사용하려고 시도합니다.

가능한 원인

RegisterForPrintAsyncNotifications Win32 API 함수에서 핸들을 열지 않았습니다. 이 작업을 시도한 루틴의 스택 추적을 보려면 디버거에서 'k' 명령을 사용합니다.

Application Verifier에서 표시하는 정보
  • 매개 변수 1  핸들  값입니다.
  • 매개 변수 2 - 사용되지 않음
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintAPI
  • 중지 ID: INVALID_ASYNC_NOTIFY_HANDLE
  • 중지 코드: 0000A021
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

UnRegisterForPrintAsyncNotifications API 함수에서 닫힌 핸들을 사용하려고 시도합니다.

가능한 원인

비동기 알림 핸들이 닫힌 후 사용되었습니다. 닫힌 핸들을 사용하려는 루틴을 보려면 디버거에서 'k' 명령을 사용하여 현재 스택 추적을 덤프합니다. 핸들을 닫은 루틴의 스택 추적을 덤프하려면 중지의 두 번째 매개 변수와 함께 dps 명령을 사용합니다.

Application Verifier에서 표시하는 정보
  • 매개 변수 1  핸들  값입니다.
  • 닫기의 매개 변수 2 - 스택 추적입니다. dps를 사용하여 NULL이 아닌 경우 스택 추적을 덤프합니다.
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintAPI
  • 중지 ID: ASYNC_NOTIFY_HANDLE_ALREADY_CLOSED
  • 중지 코드: 0000A022
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

타사 함수가 실패를 보고하지만 입력 인터페이스에 대한 참조 횟수가 증가합니다.

가능한 원인

타사 메서드는 인터페이스 포인터를 입력으로 받습니다. 이러한 메서드가 실패 코드를 반환하는 경우 인터페이스 ref 수는 동일하게 유지되어야 합니다. 그러나 이 경우 참조 수가 증가했습니다.

Application Verifier에서 표시하는 정보
  • 형식: -  %lS 메서드는 %x 오류 코드를 반환하지만 %lS 매개 변수의 ref 수를 증가합니다.
  • 매개 변수 1  -호출 인터페이스 포인터입니다. NULL인 경우 호출된 함수가 정적입니다.
  • 매개 변수 2  입력  인터페이스 포인터입니다.
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintAPI
  • 중지 ID: REFCOUNT_PLUS_AFTER_FAIL
  • 중지 코드: 0000A023
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

Windows API 함수는 실패를 보고하지만 입력 인터페이스에 대한 참조 횟수를 증가합니다.

가능한 원인

API 메서드는 인터페이스 포인터를 입력으로 받습니다. 이러한 메서드가 실패 코드를 반환하는 경우 인터페이스 ref 수는 동일하게 유지되어야 합니다. 그러나 이 경우 참조 수가 증가했습니다. 이 오류는 API 코드에서 문제가 될 수 있으므로 Microsoft에 보고하세요.

Application Verifier에서 표시하는 정보
  • 형식: -  %lS 메서드는 %x 오류 코드를 반환하지만 %lS 매개 변수의 ref 수를 증가합니다.
  • 매개 변수 1  -호출 인터페이스 포인터입니다. NULL인 경우 호출된 함수가 정적입니다.
  • 매개 변수 2  입력  인터페이스 포인터입니다.
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintAPI
  • 중지 ID: REFCOUNT_PLUS_AFTER_API_FAIL
  • 중지 코드: 0000A024
  • 심각도: 경고
  • 일회성 오류: 아니요
  • 오류 보고서: 없음
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

운영 체제의 IPrintAsyncNotifyChannel 계약 위반입니다.

가능한 원인

IPrintAsyncNotifyChannel의 플랫폼 구현은 IPrintAsyncNotifyChannel에 의해 암시되거나 정의된 특수 계약의 일부를 위반했습니다. IPrintAsyncNotifyChannel에는 AddRef 및 Release에 대한 특별한 예외가 있습니다. 이렇게 하려면 플랫폼에서 채널이 만들어진 것과 동일한 포인터 값으로 OnEventNotify 및 ChannelClosed을 호출해야 합니다.

Application Verifier에서 표시하는 정보
  • 형식: - %s이(가) 잘못된 인터페이스 포인터를 사용하여 호출되었습니다.
  • 매개 변수 1 - 실제 인터페이스 포인터입니다.
  • 매개 변수 2 - 예상 인터페이스 포인터입니다.
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintAPI
  • 중지 ID: ASYNCCHANNEL_OS_CONTRACT_VIOLATION
  • 코드 중지: 0000A025
  • 심각도: 경고
  • 일회성 오류: 아니요
  • 오류 보고서: 없음
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

채널 소비자의 IPrintAsyncNotifyChannel 계약 위반입니다.

가능한 원인

양방향 채널에서 SendNotification, CloseChannel을 호출하거나 인터페이스 포인터에서 최종 릴리스를 만들면 '소유권'이 포기됩니다. 채널을 만들고 첫 번째 알림을 보낸 후에는 콜백의 OnEventNotify가 호출될 때까지 Release()를 호출할 수 없습니다. CloseChannel()을 호출하거나 ChannelClosed 알림을 받는 경우 최종 Release() 호출을 수행해서는 안 됩니다.

Application Verifier에서 표시하는 정보
  • Format: - %s이(가) 호출되었지만 채널 '소유권'은 현재 인쇄 스풀러에 속합니다.
  • 매개 변수 1-IPrintAsyncNotifyChannel   인터페이스 포인터입니다.
  • 매개 변수 2 - 사용되지 않음
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintAPI
  • 중지 ID: ASYNCCHANNEL_CLIENT_CONTRACT_VIOLATION
  • 중지 코드: 0000A026
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

IPrintAsyncNotifyChannel을 닫는 동안 경합이 감지됨

가능한 원인

이 중지를 Microsoft에 보고하세요. 이 중지는 알림이 CloseChannel에 대한 호출 _during_에 도착했음을 나타냅니다. 이 조건이 발생하면 소비자가 채널을 올바르게 해제하는 것이 불가능할 수 있습니다. 이 중지는 자주 발생하지 않아야 합니다. 양방향 채널을 만들기 전에 항상 수신기를 사용할 수 있도록 하고, AND/또는 이미 알림을 보냈지만 콜백을 받지 못한 채널을 닫기 전에 수신기를 시작할 수 없도록 하여 방지할 수 있습니다.

Application Verifier에서 표시하는 정보
  • Format: - In 함수 %s, 다른 스레드에서 호출이 이미 진행 중입니다. 자세한 내용은 도움말을 참조하세요.
  • 매개 변수 1-IPrintAsyncNotifyChannel   인터페이스 포인터입니다.
  • 호출된 멤버 함수의 매개 변수 2 - 스레드 ID입니다.
  • 콜백 이벤트 함수의 매개 변수 3 - 스레드 ID입니다.
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintAPI
  • 중지 ID: ASYNCCHANNEL_CLOSECHANNEL_RACE_DETECTED
  • 중지 코드: 0000A027
  • 심각도: 경고
  • 일회성 오류: 아니요
  • 오류 보고서: 없음
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

GUI 스레드에서 네트워크를 호출하는 인쇄 API 호출 이로 인해 UI가 중단되는 시간에 언바운드가 발생할 수 있습니다.

가능한 원인

GUI 스레드에서 네트워크를 호출하는 인쇄 API가 호출되었습니다. 이로 인해 UI가 중단되는 시간에 언바운드가 발생할 수 있습니다. 일반적으로 이러한 API는 메시지 펌프 없이 작업자 스레드에서 호출되어야 합니다.

Application Verifier에서 표시하는 정보
  • Format: - %s이(가) GUI 스레드인 스레드에서 호출되었습니다. 이로 인해 UI가 중단되는 시간에 언바운드가 발생할 수 있습니다.
  • 최상위 표시 창의 매개 변수 1-HWND  입니다.
  • 매개 변수 2 - 현재 스레드 ID입니다.
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintAPI
  • 중지 ID: CALLING_NETBOUND_PRINT_API_ON_GUI_THREAD
  • 중지 코드: 0000A028
  • 심각도: 경고
  • 일회성 오류: 아니요
  • 오류 보고서: 없음
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

사용자 인터페이스를 팝업할 API를 호출하는 것은 Session0입니다.

가능한 원인

사용자 인터페이스가 Session0으로 팝업되는 API에 대한 호출이 이루어졌습니다.

Application Verifier에서 표시하는 정보
  • 형식: -  Session0 API의 잘못된 호출: %s
  • 매개 변수 1 - 사용되지 않음
  • 매개 변수 2 - 사용되지 않음
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintAPI
  • 중지 ID: UNSUPPORTED_API_CALLED_IN_SESSION_ZERO
  • 중지 코드: 0000A029
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

첫 번째 기회 액세스 위반이 감지됨

가능한 원인

이 중지는 프린터 드라이버가 실행 불가능하거나 해제되거나 커밋 해제되었거나 예약되어 있지만 커밋되지 않았기 때문에 액세스할 수 없는 가상 메모리 주소에 액세스하려고 할 때 생성됩니다. 이 중지를 디버그하려면 : $ u 매개 변수2 - 의심 코드 $ .exr parameter3의 어셈블을 해제하려면 - 예외 정보를 표시합니다. $ .cxr 매개 변수4 - 예외 컨텍스트 정보를 표시하려면 $ kb - 예외가 발생할 때 스택 추적을 표시합니다.

Application Verifier에서 표시하는 정보
  • 액세스 중인 매개 변수 1 - 주소입니다.
  • 잘못된 액세스를 수행하는 매개 변수 2  코드 입니다.
  • 매개 변수 3  예외  레코드입니다. .exr을 사용하여 표시합니다.
  • 매개 변수 4  컨텍스트  레코드입니다. .cxr를 사용하여 표시합니다.

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: FIRST_CHANCE_ACCESS_VIOLATION
  • 중지 코드: 0000D000
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

스레드가 정수 값을 0의 정수 수로 나누려고 했습니다.

가능한 원인

이 중지는 프린터 드라이버가 정수 값을 0의 정수 수로 나누려고 할 때 생성됩니다. 이 중지를 디버그하려면 : $ u parameter1 - 의심 코드 $ .exr 매개 변수2의 어셈블을 해제하려면 - 예외 정보를 표시합니다. $ .cxr parameter3 - 예외 컨텍스트 정보를 표시하려면 $ kb - 예외가 발생할 때 스택 추적을 표시합니다.

Application Verifier에서 표시하는 정보
  • 매개 변수 1-0   연산으로 나누기를 수행하는 코드입니다.
  • 매개 변수 2 - 예외 레코드입니다. .exr을 사용하여 표시합니다.
  • 매개 변수 3  컨텍스트  레코드입니다. .cxr를 사용하여 표시합니다.
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: INT_DIVIDE_BY_ZERO
  • 중지 코드: 0000D001
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

스레드가 정렬을 제공하지 않는 하드웨어에서 잘못 정렬된 데이터를 읽거나 쓰려고 했습니다.

가능한 원인

이 중지는 드라이버가 정렬을 제공하지 않는 하드웨어에서 잘못 정렬된 데이터를 읽거나 쓰려고 할 때 생성됩니다. 예를 들어 16비트 값은 2 바이트 경계에 맞춰야 합니다. 4 바이트 경계 등에서 32비트 값입니다. 이 중지를 디버그하려면 : $ u parameter1 - 범인 코드의 어셈블 해제 $ .exr parameter2 - 예외 정보를 표시합니다. $ .cxr parameter3 - 예외 컨텍스트 정보를 표시하려면 $ kb - 예외가 발생할 때 스택 추적을 표시합니다.

Application Verifier에서 표시하는 정보
  • 매개 변수 1 - 데이터 형식이 잘못 정렬된 코드입니다.
  • 매개 변수 2 - 예외 레코드입니다. .exr을 사용하여 표시합니다.
  • 매개 변수 3  컨텍스트  레코드입니다. .cxr를 사용하여 표시합니다.
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: DATATYPE_MISALIGNMENT
  • 중지 코드: 0000D002
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

현재 스택 추적에 대한 잘못된 핸들 예외

가능한 원인

이 중지는 스택 맨 위에 있는 함수가 시스템 루틴에 잘못된 핸들을 전달하면 생성됩니다. 일반적으로 kb 명령은 호출 스택에 전달된 핸들의 값을 표시합니다. 핸들은 호출의 매개 변수 중 하나가 됩니다. 첫 번째 매개 변수인 경우가 많습니다. null 핸들 값은 잘못된 핸들 값의 한 예입니다. 핸들 값이 유효한 것으로 표시되면 !htrace 디버거 확장을 사용하여 핸들 값과 관련된 작업의 기록을 확인합니다. 핸들이 닫힌 후 사용되는 경우 유효한 것으로 보이는 핸들 값이 유효하지 않을 수 있습니다.

Application Verifier에서 표시하는 정보
  • 매개 변수 1  예외  코드입니다.
  • 매개 변수 2 - 예외 레코드입니다. .exr을 사용하여 표시합니다.
  • 매개 변수 3  컨텍스트  레코드입니다. .cxr를 사용하여 표시합니다.
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: INVALID_HANDLE
  • 중지 코드: 0000D003
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

핵심 드라이버가 플러그 인에 닫힌 프린터 핸들을 보내고 있습니다.

가능한 원인

핵심 드라이버는 이미 닫힌 프린터 핸들에 플러그 인을 보내고 있습니다. 이 오류는 Microsoft의 핵심 프린터 드라이버 모듈에서 문제가 될 수 있으므로 Microsoft에 보고합니다. 닫힌 프린터 핸들을 사용하려는 루틴을 식별하려면 디버거에서 'k' 명령을 사용하여 현재 스택 추적을 덤프합니다. 핸들을 닫은 루틴의 스택 추적을 덤프하려면 중지의 두 번째 매개 변수와 함께 dps 명령을 사용합니다.

Application Verifier에서 표시하는 정보
  • 플러그 인으로 전송되는 매개 변수 1  프린터  핸들입니다.
  • 닫는 루틴의 매개 변수 2 - 스택 추적입니다.
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: PRINTER_HANDLE_ALREADY_CLOSED
  • 코드 중지: 0000D004
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

핵심 드라이버가 알 수 없는 프린터 핸들을 플러그 인으로 보내고 있습니다.

가능한 원인

핵심 드라이버는 Windows Vista, AddPrinterA 또는 AddPrinterW에서 OpenPrinterA, OpenPrinterW, OpenPrinter2W를 호출하여 열리지 않은 프린터 핸들을 플러그 인으로 보냅니다. 이 오류는 Microsoft의 핵심 프린터 드라이버 모듈에서 문제가 될 수 있으므로 Microsoft에 보고합니다.

Application Verifier에서 표시하는 정보
  • 플러그 인으로 전송되는 매개 변수 1  프린터  핸들입니다.
  • 매개 변수 2 - 사용되지 않음
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: INVALID_PRINTER_HANDLE
  • 코드 중지: 0000D005
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

플러그 인이 프린터 핸들을 닫았습니다.

가능한 원인

플러그 인이 핵심 드라이버에서 입력으로 받은 프린터 핸들을 닫았습니다. 이는 핵심 드라이버에서 플러그 인으로의 호출에 대한 WDK 규칙을 위반합니다. 핸들을 닫은 루틴의 스택 추적을 덤프하려면 중지의 두 번째 매개 변수에 dps를 사용합니다.

Application Verifier에서 표시하는 정보
  • 형식: - 이 검증 도구 중지는 %lS에서 플러그 인 모듈의 %lS 메서드에 의해 발생했습니다.
  • 닫힌 매개 변수 1  프린터  핸들입니다.
  • 닫기의 매개 변수 2 - 스택 추적입니다. dps를 사용하여 NULL이 아닌 경우 스택 추적을 덤프합니다.
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: PLUGIN_CLOSED_PRINTER_HANDLE
  • 코드 중지: 0000D006
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

지원되는 인쇄 스키마 주 버전 수가 잘못되었습니다.

가능한 원인

PrintTicket 공급자 플러그 인에서 지원되는 인쇄 스키마 주 버전 수가 잘못 반환되었습니다. 플러그 인의 IPrintOemPrintTicketProvider::GetSupportedVersions 메서드는 지원되는 주 버전을 하나 이상 반환해야 합니다. Windows Vista는 하나의 주 버전의 인쇄 스키마만 지원하므로 플러그 인은 하나의 값을 반환해야 합니다.

Application Verifier에서 표시하는 정보
  • 형식: - 이 검증 도구 중지는 %lS에서 플러그 인 모듈의 %lS 메서드에 의해 발생했습니다.
  • 매개 변수 1 - 반환된 지원되는 스키마 버전 수입니다.
  • 매개 변수 2 - 사용되지 않음
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: PRINTTICKET_PROVIDER_INVALID_NUMBER_OF_SUPPORTED_SCHEMA_VERSIONS
  • 중지 코드: 0000D007
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

지원되는 인쇄 스키마 버전이 없습니다.

가능한 원인

PrintTicket 공급자 플러그 인은 지원되는 인쇄 스키마 버전을 하나 이상 반환했지만 반환하지 못했음을 나타냅니다. 플러그 인에서 IPrintOemPrintTicketProvider::GetSupportedVersions 메서드에 대한 호출은 두 개의 out 포인터를 인수로 허용합니다. ppVersions 인수는 지원되는 인쇄 스키마의 주 버전을 나타내는 정수 배열을 가리킵니다. cVersions 인수는 반환되는 정수 배열의 요소 수를 가리킵니다. 이 검증 도구 중지는 플러그 인이 cVersions에서 유효한 숫자를 반환하지만 ppVersions 배열에서 아무 것도 반환하지 못할 때 발생합니다.

Application Verifier에서 표시하는 정보
  • 형식: - 이 검증 도구 중지는 %lS에서 플러그 인 모듈의 %lS 메서드에 의해 발생했습니다.
  • 매개 변수 1 - 반환된 지원되는 인쇄 스키마 버전 수입니다.
  • 매개 변수 2 - 사용되지 않음
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: PRINTTICKET_PROVIDER_MISSING_SUPPORTED_SCHEMA_VERSION
  • 중지 코드: 0000D008
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

인쇄 스키마 주 버전이 잘못되었습니다.

가능한 원인

PrintTicket 공급자 플러그 인이 잘못된 인쇄 스키마 주 버전을 반환했습니다. Windows Vista에서 지원하는 인쇄 스키마의 유일한 주 버전은 1이므로 플러그 인에서 IPrintOemPrintTicketProvider::GetSupportedVersions 메서드에 대한 호출은 1의 값을 반환해야 합니다.

Application Verifier에서 표시하는 정보
  • 형식: - 이 검증 도구 중지는 %lS에서 플러그 인 모듈의 %lS 메서드에 의해 발생했습니다.
  • 반환된 매개 변수 1  인쇄  스키마 버전입니다.
  • 매개 변수 2 - 사용되지 않음
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: PRINTTICKET_PROVIDER_INVALID_SUPPORTED_SCHEMA_VERSION
  • 코드 중지: 0000D009
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

잘못된 OEMPTOPTS 값

가능한 원인

PrintTicket 공급자 플러그 인이 잘못된 OEMPTOPTS 값을 반환했습니다. 플러그 인에서 IPrintOemPrintTicketProvider::BindPrinter 메서드에 대한 인수 중 하나는 OEMPTOPTS 열거형에 대한 포인터입니다. 플러그 인은 이 인수의 값을 Windows Vista에서 지원하는 값 중 하나로 설정해야 합니다. Windows Vista에서 지원하는 값은 OEMPT_DEFAULT OEMPT_NOSNAPSHOT. 이 검증 도구 중지는 플러그 인이 지원되는 값 중 하나가 아닌 값을 반환할 때 발생합니다.

Application Verifier에서 표시하는 정보
  • 형식: - 이 검증 도구 중지는 %lS에서 플러그 인 모듈의 %lS 메서드에 의해 발생했습니다.
  • 반환된 매개 변수 1-OEMPTOPTS   값입니다.
  • 매개 변수 2 - 사용되지 않음
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: PRINTTICKET_PROVIDER_INVALID_OEMPTOPTS
  • 코드 중지: 0000D00A
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

인쇄 스키마 프라이빗 네임스페이스가 없습니다.

가능한 원인

PrintTicket 공급자 플러그 인은 하나 이상의 인쇄 스키마 프라이빗 네임스페이스를 반환하지만 반환하지 않았음을 나타냅니다. 플러그 인에서 IPrintOemPrintTicketProvider::BindPrinter 메서드에 대한 호출에는 플러그 인이 지원하는 인쇄 스키마 프라이빗 네임스페이스에 대한 정보를 반환할 수 있는 두 개의 out 포인터 인수가 포함되어 있습니다. ppNamespaces 인수는 지원되는 인쇄 스키마 프라이빗 네임스페이스를 나타내는 문자열 배열을 가리킵니다. cNamespaces 인수는 반환되는 문자열 배열의 요소 수를 가리킵니다. 이 검증 도구 중지는 플러그 인이 cNamespaces에서 유효한 숫자를 반환하지만 ppNamespaces 배열에서 아무 것도 반환하지 않을 때 발생합니다.

Application Verifier에서 표시하는 정보
  • 형식: - 이 검증 도구 중지는 %lS에서 플러그 인 모듈의 %lS 메서드에 의해 발생했습니다.
  • 매개 변수 1 - 예상 네임스페이스 수입니다.
  • 매개 변수 2 - 사용되지 않음
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: PRINTTICKET_PROVIDER_MISSING_NAMESPACE
  • 중지 코드: 0000D00B
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

플러그 인에서 잘못된 참조 계산이 검색됨

가능한 원인

WDK는 플러그 인이 IUnknown::AddRef 및 IUnknown::Release 메서드의 구현에서 정확한 참조 계산을 수행해야 한다고 명시하고 있습니다. 플러그 인 인터페이스 개체의 수명은 정확한 참조 계산에 따라 달라집니다. 참조 계산이 정확하지 않으면 리소스가 누출되거나 플러그 인이 조기에 언로드되어 드라이버가 실패할 수 있습니다. 이 검증 도구 중지는 플러그 인에서 잘못된 참조 계산이 검색될 때 발생합니다.

Application Verifier에서 표시하는 정보
  • 형식: - 이 검증 도구 중지 %lS에서 플러그 인 모듈에 의해 발생 했습니다.
  • 매개 변수 1 - 예상 참조 수입니다.
  • 플러그 인에서 유지 관리하는 매개 변수 2 - 실제 참조 수입니다.
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: PLUGIN_MISMATCHED_REFCOUNT
  • 코드 중지: 0000D00C
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

pptl은 OEMNextBand에서 NULL입니다.

가능한 원인

핵심 드라이버가 플러그 인의 OEMNextBand 후크에 전달한 pptl은 NULL입니다. 핵심 드라이버는 항상 플러그 인의 OEMNextBand 후크에 유효한 pptl을 보내야 합니다. 이 오류는 Microsoft의 핵심 프린터 드라이버 모듈에서 문제가 될 수 있으므로 Microsoft에 보고합니다.

Application Verifier에서 표시하는 정보
  • 매개 변수 1 - 사용되지 않음
  • 매개 변수 2 - 사용되지 않음
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: PPTL_IS_NULL_IN_OEMNEXTBAND
  • 중지 코드: 0000D00D
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

플러그 인이 EnablePDEV 메서드에서 S_OK 반환한 후 NULL PDEV를 반환했습니다.

가능한 원인

EnablePDEV 메서드의 반환 값이 성공을 나타내는 S_OK 있지만 플러그 인에서 반환된 개인 PDEV는 NULL이었습니다. WDK는 플러그 인의 EnablePDEV 메서드가 S_OK 상태를 반환하는 경우 프라이빗 PDEV 구조의 인스턴스도 할당하고, 초기화하고, 메서드의 pDevOem 매개 변수에서 이 구조체의 주소를 반환해야 한다고 명시하고 있습니다. 이 검증 도구 중지는 EnablePDEV 메서드의 구현에서 S_OK 상태를 반환할 때 플러그 인이 유효한 프라이빗 PDEV 구조를 반환하지 않을 때 발생합니다.

Application Verifier에서 표시하는 정보
  • 형식: - 이 검증 도구 중지 %lS에서 플러그 인 모듈에 의해 발생 했습니다.
  • 매개 변수 1 - 사용되지 않음
  • 매개 변수 2 - 사용되지 않음
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: PLUGIN_PRIVATE_PDEV_IS_NULL
  • 코드 중지: 0000D00E
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

플러그 인은 허용되는 최소 크기보다 작은 프라이빗 DEVMODE를 반환했습니다.

가능한 원인

플러그 인에서 반환되는 프라이빗 DEVMODE는 OEM_DMEXTRAHEADER 크기 이상이어야 합니다. 플러그 인의 DevMode 메서드는 OEMDM_SIZE 모드로 호출할 때 프라이빗 DEVMODE 멤버를 저장하는 데 필요한 크기를 반환해야 합니다. 이 값은 메서드를 처음 호출할 때 설정됩니다. 플러그 인의 DevMode 메서드는 OEMDMPARAM 구조체의 cbBufSize 멤버 값을 필요한 바이트 수로 설정해야 하며 해당 값은 OEM_DMEXTRAHEADER 크기보다 크거나 같아야 합니다. 이 검증 도구 중지는 OEMDMPARAM 구조체의 cbBufSize 멤버에서 반환되는 크기가 OEM_DMEXTRAHEADER 크기보다 작을 때 발생합니다.

Application Verifier에서 표시하는 정보
  • 형식: - 이 검증 도구 중지 %lS에서 플러그 인 모듈에 의해 발생 했습니다.
  • 현재 DevMode 콜백에 대한 매개 변수 1   모드입니다.
  • 플러그 인의 private DEVMODE의 매개 변수 2   크기입니다.
  • 매개 변수 3 - 크기 OEM_DMEXTRAHEADER.
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: INVALID_PLUGIN_PRIVATE_DEVMODE_SIZE
  • 코드 중지: 0000D00F
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

플러그 인은 DevMode(OEMDM_SIZE) 호출에서 반환한 크기와 다른 크기의 프라이빗 DEVMODE를 반환했습니다.

가능한 원인

플러그 인은 OEMDM_SIZE 모드에서 DevMode 호출에서 반환한 것과 동일한 크기의 프라이빗 DEVMODE를 반환해야 합니다. 플러그 인의 DevMode 메서드는 devMode 메서드가 OEMDM_SIZE 모드로 호출되는 경우 프라이빗 DEVMODE 멤버를 저장하는 데 필요한 크기를 반환해야 합니다. 이 값은 상수이며 메서드를 처음 호출할 때 설정됩니다. 플러그 인의 DevMode 메서드에 대한 후속 호출이 발생하는 경우 변경되지 않아야 합니다. 이 검증 도구 중지는 플러그 인의 DevMode 메서드가 처음 호출되었을 때 반환한 값과 다른 값을 반환할 때 발생합니다.

Application Verifier에서 표시하는 정보
  • 형식: - 이 검증 도구 중지 %lS에서 플러그 인 모듈에 의해 발생 했습니다.
  • 현재 Devmode 콜백에 대한 매개 변수 1   모드입니다.
  • pOEMDMOut에 지정된 출력 플러그 인 private DEVMODE의 매개 변수 2   크기입니다.
  • pOEMDMParam에 지정된 출력 플러그 인 private DEVMODE의 매개 변수 3   크기입니다.
  • OEMDM_SIZE 호출 중에 지정된 플러그 인 프라이빗 DEVMODE의 매개 변수 4   크기입니다.

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: PLUGIN_PRIVATE_DEVMODE_MISMATCHED_SIZE
  • 중지 코드: 0000D010
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

플러그 인이 GetInfo(OEMGI_GETSIGNATURE) 호출에서 잘못된 서명을 반환했습니다.

가능한 원인

플러그 인은 OEMGI_GETSIGNATURE 모드로 GetInfo 호출 중에 호출되는 경우 0이 아닌 유효한 서명을 반환해야 합니다. 플러그 인의 GetInfo 메서드는 고유한 4 바이트 ID 서명을 반환해야 합니다. 이 검증 도구 중지는 플러그 인의 GetInfo(OEMGI_GETSIGNATURE) 메서드가 0 시그니처를 반환할 때 발생합니다.

Application Verifier에서 표시하는 정보
  • 형식: - 이 검증 도구 중지 %lS에서 플러그 인 모듈에 의해 발생 했습니다.
  • 매개 변수 1 - 사용되지 않음
  • 매개 변수 2 - 사용되지 않음
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: INVALID_PLUGIN_SIGNATURE
  • 중지 코드: 0000D011
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

플러그 인은 GetInfo 호출에서 반환된 것과 다른 서명을 프라이빗 DEVMODE에 반환했습니다.

가능한 원인

플러그 인은 플러그 인의 GetInfo 메서드에 대한 OEMGI_GETSIGNATURE 호출과 함께 반환된 것과 동일한 고유한 4바이트 ID 서명이 포함된 프라이빗 DEVMODE를 반환해야 합니다. 이 검증 도구 중지는 이러한 두 서명이 동일하지 않은 경우에 발생합니다.

Application Verifier에서 표시하는 정보
  • 형식: - 이 검증 도구 중지 %lS에서 플러그 인 모듈에 의해 발생 했습니다.
  • 현재 DevMode 메서드 호출에 대한 매개 변수 1   모드입니다.
  • 출력 플러그 인 private DEVMODE에 지정된 매개 변수 2   서명입니다.
  • GetInfo 호출 중에 지정된 대로 매개 변수 3  서명 입니다.
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: PLUGIN_PRIVATE_DEVMODE_MISMATCHED_SIGNATURE
  • 중지 코드: 0000D012
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

플러그 인의 EnableDriver 메서드가 실패했습니다.

가능한 원인

예외적인 상황에서는 실패할 수 있지만 플러그 인의 EnableDriver 메서드는 실패할 것으로 예상되지 않습니다.

Application Verifier에서 표시하는 정보
  • 형식: - 이 검증 도구 중지 %lS에서 플러그 인 모듈에 의해 발생 했습니다.
  • EnableDriver에서 반환된 매개 변수 1-HRESULT  입니다.
  • 플러그 인에 의해 설정된 매개 변수 2  오류  코드입니다.
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: ENABLEDRIVER_FAILED
  • 중지 코드: 0000D013
  • 심각도: 경고
  • 일회성 오류: 아니요
  • 오류 보고서: 없음
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

마지막 오류 코드를 설정하지 않고 플러그 인의 EnableDriver 메서드가 실패했습니다.

가능한 원인

예외적인 상황에서는 실패할 수 있지만 플러그 인의 EnableDriver 메서드는 실패할 것으로 예상되지 않습니다. 실패하는 경우 SetLastError를 호출하여 마지막 오류 코드를 설정해야 합니다. 이 검증 도구 중지는 마지막 오류를 설정하지 않고 플러그 인의 EnableDriver 메서드가 실패할 때 발생합니다.

Application Verifier에서 표시하는 정보
  • 형식: - 이 검증 도구 중지 %lS에서 플러그 인 모듈에 의해 발생 했습니다.
  • EnableDriver에서 반환된 매개 변수 1-HRESULT  입니다.
  • 매개 변수 2 - 사용되지 않음
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: ENABLEDRIVER_FAILED_WITHOUT_ERROR_CODE
  • 코드 중지: 0000D014
  • 심각도: 경고
  • 일회성 오류: 아니요
  • 오류 보고서: 없음
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

플러그 인이 DriverDMS에서 S_OK 반환되었지만 SetBandSize라는 핵심 드라이버

가능한 원인

플러그 인이 DriverDMS 메서드를 구현하고 DriverDMS 메서드의 구현이 S_OK 반환하는 경우 핵심 드라이버는 SetBandSize를 호출하지 않을 것으로 예상됩니다. 이 오류는 Microsoft의 핵심 프린터 드라이버 모듈에서 문제가 될 수 있으므로 Microsoft에 보고합니다.

Application Verifier에서 표시하는 정보
  • 매개 변수 1 - 사용되지 않음
  • 매개 변수 2 - 사용되지 않음
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: INVALID_SETBANDSIZE_CALL
  • 코드 중지: 0000D015
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

핵심 드라이버가 잘못된 매개 변수를 사용하여 WritePrinter 초기화 호출을 했습니다.

가능한 원인

WritePrinter의 초기화 호출 중에 pdevobj 및 pBuf 인수는 NULL이어야 하고 cbBuf는 0이어야 합니다. 핵심 드라이버가 플러그 인에서 WritePrinter 메서드를 초기화할 때 이러한 조건 중 하나가 사실이 아니었습니다. 이 오류는 Microsoft의 핵심 프린터 드라이버 모듈에서 문제가 될 수 있으므로 Microsoft에 보고합니다.

Application Verifier에서 표시하는 정보
  • 매개 변수 1 - 사용되지 않음
  • 매개 변수 2 - 사용되지 않음
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: INVALID_WRITEPRINTER_INITIALIZATION_CALL
  • 코드 중지: 0000D016
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

플러그 인의 WritePrinter 메서드가 실패했습니다.

가능한 원인

이 검증 도구 중지는 플러그 인의 WritePrinter 메서드가 실패할 때 발생합니다. 그러면 인쇄 작업이 중단됩니다.

Application Verifier에서 표시하는 정보
  • 형식: - 이 검증 도구 중지 %lS에서 플러그 인 모듈에 의해 발생 했습니다.
  • 플러그 인의 WritePrinter 메서드에서 반환된 매개 변수 1-HRESULT  입니다.
  • 매개 변수 2 - 사용되지 않음
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: WRITEPRINTER_FAILED
  • 코드 중지: 0000D017
  • 심각도: 경고
  • 일회성 오류: 아니요
  • 오류 보고서: 없음
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

핵심 드라이버가 플러그 인에 잘못된 PrintTicket을 보냈습니다.

가능한 원인

이 검증 도구 중지는 핵심 드라이버에서 플러그 인으로 전송된 PrintTicket 문서가 PrintSchema를 준수하지 않을 때 발생합니다. 핵심 드라이버는 드라이버의 GPD/PPD를 구문 분석하여 플러그 인으로 전송되는 PrintTicket을 생성하기 때문에 이 중지는 일반적으로 드라이버의 GPD/PPD의 버그를 나타냅니다.

Application Verifier에서 표시하는 정보
  • 형식: - 이 검증 도구 중지는 핵심 드라이버가 플러그 인의 %lS 메서드를 호출할 때 발생했습니다.
  • PTConform에서 반환된 매개 변수 1  오류  메시지입니다. 이 매개 변수가 NULL이 아닌 경우 du를 사용하여 메시지를 덤프합니다.
  • 매개 변수 2-PrintTicket   XML 텍스트입니다. 이 매개 변수가 NULL이 아닌 경우 du를 사용하여 XML을 덤프합니다.
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: INVALID_COREDRIVER_PRINTTICKET
  • 중지 코드: 0000D018
  • 심각도: 경고
  • 일회성 오류: 아니요
  • 오류 보고서: 없음
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

플러그 인이 핵심 드라이버에 잘못된 PrintTicket을 반환했습니다.

가능한 원인

이 검증 도구 중지는 플러그 인에서 핵심 드라이버로 반환된 PrintTicket 문서가 PrintSchema를 준수하지 않을 때 발생합니다.

Application Verifier에서 표시하는 정보
  • 형식: - 이 검증 도구 중지는 %lS에서 플러그 인 모듈의 %lS 메서드에 의해 발생했습니다.
  • PTConform에서 반환된 매개 변수 1  오류  메시지입니다. 이 매개 변수가 NULL이 아닌 경우 du를 사용하여 메시지를 덤프합니다.
  • 매개 변수 2-PrintTicket   XML 텍스트입니다. 이 매개 변수가 NULL이 아닌 경우 du를 사용하여 XML을 덤프합니다.
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: INVALID_PLUGIN_PRINTTICKET
  • 코드 중지: 0000D019
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

핵심 드라이버가 잘못된 PrintCapabilities 문서를 플러그 인에 보냈습니다.

가능한 원인

이 검증 도구 중지는 핵심 드라이버에서 플러그 인으로 전송된 PrintCapabilities 문서가 PrintSchema를 준수하지 않을 때 발생합니다. 이 오류는 Microsoft의 핵심 프린터 드라이버 모듈에서 문제가 될 수 있으므로 Microsoft에 보고합니다.

Application Verifier에서 표시하는 정보
  • 형식: - 이 검증 도구 중지는 핵심 드라이버가 플러그 인의 %lS 메서드를 호출할 때 발생했습니다.
  • PTConform에서 반환된 매개 변수 1  오류  메시지입니다. 이 매개 변수가 NULL이 아닌 경우 du를 사용하여 메시지를 덤프합니다.
  • 매개 변수 2-PrintCapabilities   XML 텍스트입니다. 이 매개 변수가 NULL이 아닌 경우 du를 사용하여 XML을 덤프합니다.
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: INVALID_COREDRIVER_PRINTCAPABILITIES
  • 코드 중지: 0000D01A
  • 심각도: 경고
  • 일회성 오류: 아니요
  • 오류 보고서: 없음
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

플러그 인이 핵심 드라이버에 잘못된 PrintCapabilities 문서를 반환했습니다.

가능한 원인

이 검증 도구 중지는 플러그 인에서 핵심 드라이버로 반환된 PrintCapabilities 문서가 PrintSchema를 준수하지 않을 때 발생합니다.

Application Verifier에서 표시하는 정보
  • 형식: - 이 검증 도구 중지는 %lS에서 플러그 인 모듈의 %lS 메서드에 의해 발생했습니다.
  • PTConform에서 반환된 매개 변수 1  오류  메시지입니다. 이 매개 변수가 NULL이 아닌 경우 du를 사용하여 메시지를 덤프합니다.
  • 매개 변수 2-PrintCapabilities   XML 텍스트입니다. 이 매개 변수가 NULL이 아닌 경우 du를 사용하여 XML을 덤프합니다.
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: INVALID_PLUGIN_PRINTCAPABILITIES
  • 코드 중지: 0000D01B
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

PTConform에서 예기치 않은 오류가 발생했습니다.

가능한 원인

이 검증 도구 중지는 PrintVerifier가 PrintTicket/PrintCapabilities가 PrintSchema를 준수하는지 확인하는 동안 예기치 않은 오류가 발생할 때 발생합니다. PrintVerifier에서 문제가 될 수 있으므로 이 오류를 Microsoft에 보고합니다.

Application Verifier에서 표시하는 정보
  • 매개 변수 1 - 사용되지 않음
  • 매개 변수 2 - 사용되지 않음
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: PTCONFORM_UNEXPECTED_ERROR
  • 코드 중지: 0000D01C
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

잘못된 인수 값을 사용하여 필터 호출 파이프라인 관리자 인터페이스 인쇄

가능한 원인

이 검증 도구 중지는 인쇄 필터가 잘못된 인수 값을 가진 파이프라인 메서드를 호출할 때 발생합니다. 스택 추적을 사용하여 인쇄 필터 DLL의 이름을 찾습니다.

Application Verifier에서 표시하는 정보
  • Format: -  %s 메서드: %s 인수의 값이 잘못되었습니다.
  • 매개 변수 1  인쇄  필터 GUID입니다. 이 매개 변수가 NULL이 아닌 경우 dd를 사용하여 덤프합니다.
  • 매개 변수 2  인수  값입니다.
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: FILTER_INVALID_ARGUMENT
  • 중지 코드: 0000D01D
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

IPrintPipelinePropertyBag에 대한 필터 호출을 인쇄하면 공통 속성이 덮어쓰거나 제거됩니다.

가능한 원인

이 검증 도구 중지는 인쇄 필터가 인쇄 파이프라인 속성 모음에서 공통 속성을 변경하거나 삭제할 때 발생합니다.

Application Verifier에서 표시하는 정보
  • Format: -  %s 메서드: 공용 속성 %s 덮어쓰기
  • 매개 변수 1  인쇄  필터 GUID입니다. 이 매개 변수가 NULL이 아닌 경우 dd를 사용하여 덤프합니다.
  • 매개 변수 2 - 속성 값(variant)입니다.
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: FILTER_PROPERTY_BAG_INVALID_CHANGE
  • 코드 중지: 0000D01E
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

인쇄 필터 호출 파이프라인 관리자 인터페이스가 순서를 벗어났습니다.

가능한 원인

이 검증 도구 중지는 인쇄 필터가 파이프라인 관리자 인터페이스 메서드를 예기치 않은 순서로 호출할 때 발생합니다.

Application Verifier에서 표시하는 정보
  • 형식: -  %s 인터페이스에 대한 잘못된 호출 순서: %s
  • 매개 변수 1  인쇄  필터 GUID입니다. 이 매개 변수가 NULL이 아닌 경우 dd를 사용하여 덤프합니다.
  • 매개 변수 2 - 사용되지 않음
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: FILTER_INVALID_CALL_ORDER
  • 코드 중지: 0000D01F
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

인쇄 필터에 파이프라인 관리자 인터페이스에 대한 AddRef/Release 호출이 일치하지 않습니다.

가능한 원인

이 검증 도구 중지는 인쇄 필터가 파이프라인 관리자 인터페이스의 참조 수를 잘못 관리하는 경우에 발생합니다.

Application Verifier에서 표시하는 정보
  • 형식: -  인터페이스 %s ref 수가 %d이고 예상 %s입니다.
  • 매개 변수 1  인쇄  필터 GUID입니다. 이 매개 변수가 NULL이 아닌 경우 dd를 사용하여 덤프합니다.
  • 매개 변수 2 - 사용되지 않음
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: FILTER_REFCOUNT_MISMATCH
  • 중지 코드: 0000D020
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

파이프라인 관리자 인터페이스 메서드에 대한 인쇄 필터 호출이 예상되지 않음

가능한 원인

이 검증 도구 중지는 인쇄 필터가 파이프라인 인터페이스 메서드를 불필요하거나 예기치 않게 호출할 때 발생합니다. 예를 들어 인쇄 필터가 IPrintWriteStream::Close를 두 번째로 호출하는 경우입니다.

Application Verifier에서 표시하는 정보
  • Format: -  Interface 메서드 %s: %s
  • 매개 변수 1  인쇄  필터 GUID입니다. 이 매개 변수가 NULL이 아닌 경우 dd를 사용하여 덤프합니다.
  • 매개 변수 2 - 사용되지 않음
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: FILTER_UNEXPECTED_CALL
  • 중지 코드: 0000D021
  • 심각도: 경고
  • 일회성 오류: 아니요
  • 오류 보고서: 없음
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

파이프라인 관리자는 인쇄 필터 인터페이스 메서드를 순서대로 호출합니다.

가능한 원인

이 검증 도구 중지는 파이프라인 관리자가 인쇄 필터 인터페이스의 메서드를 잘못 호출할 때 발생합니다. 인쇄 필터 파이프라인 서비스에서 문제가 될 수 있으므로 이 오류를 Microsoft에 보고합니다.

Application Verifier에서 표시하는 정보
  • 형식: -  인쇄 필터에 대한 잘못된 호출 순서: %s
  • 매개 변수 1  인쇄  필터 GUID입니다. 이 매개 변수가 NULL이 아닌 경우 dd를 사용하여 덤프합니다.
  • 매개 변수 2 - 사용되지 않음
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: PIPELINE_INVALID_CALL_ORDER
  • 중지 코드: 0000D022
  • 심각도: 경고
  • 일회성 오류: 아니요
  • 오류 보고서: 없음
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

파이프라인 관리자가 잘못된 인수 값을 사용하여 인쇄 필터 인터페이스 메서드를 호출합니다.

가능한 원인

이 검증 도구 중지는 파이프라인 관리자가 잘못된 인수 값이 있는 인쇄 필터 인터페이스를 호출할 때 발생합니다. 인쇄 필터 파이프라인 서비스에서 문제가 될 수 있으므로 이 오류를 Microsoft에 보고합니다.

Application Verifier에서 표시하는 정보
  • Format: -  메서드 %s: %s
  • 매개 변수 1  인쇄  필터 GUID입니다. 이 매개 변수가 NULL이 아닌 경우 dd를 사용하여 덤프합니다.
  • 매개 변수 2  인수  값입니다.
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: PIPELINE_INVALID_INPUT_ARGUMENT
  • 코드 중지: 0000D023
  • 심각도: 경고
  • 일회성 오류: 아니요
  • 오류 보고서: 없음
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

파이프라인 관리자가 인쇄 필터에 잘못된 값을 반환합니다.

가능한 원인

이 검증 도구 중지는 파이프라인 관리자가 인쇄 필터에 잘못된 값을 반환할 때 발생합니다. 인쇄 필터 파이프라인 서비스에서 문제가 될 수 있으므로 이 오류를 Microsoft에 보고합니다.

Application Verifier에서 표시하는 정보
  • Format: -  메서드 %s: %s
  • 매개 변수 1  인쇄  필터 GUID입니다. 이 매개 변수가 NULL이 아닌 경우 dd를 사용하여 덤프합니다.
  • 매개 변수 2 - 값입니다.
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: PIPELINE_INVALID_OUTPUT_ARGUMENT
  • 코드 중지: 0000D024
  • 심각도: 경고
  • 일회성 오류: 아니요
  • 오류 보고서: 없음
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

프린터 드라이버에 대한 호출로 보안 컨텍스트가 변경되었습니다.

가능한 원인

이 중지는 일반적으로 인쇄 드라이버가 RevertToSelf() 또는 RevertToPrinterSelf()를 호출하지만 ImpersonatePrinterClient()를 호출하여 보안 컨텍스트를 다시 사용자 가장으로 변경하지 않은 경우에 발생합니다. 이 작업은 허용되지 않으며 이 경우 인쇄 스풀러 동작이 정의되지 않습니다. 이렇게 하면 보안 취약성이 생성되고 권한 유형의 원격 인증 상승이 허용될 수도 있습니다.

Application Verifier에서 표시하는 정보
  • 형식: - 이 검증 도구 중지는 '%lS'의 플러그 인 모듈에서 '%lS' 메서드에 의해 발생했습니다.
  • 드라이버 항목의 매개 변수 1  계정  이름입니다. NULL이 아닌 경우 덤프하려면 'du address'를 입력합니다.
  • 드라이버 종료 시 매개 변수 2  계정  이름입니다. NULL이 아닌 경우 덤프하려면 'du address'를 입력합니다.
  • 드라이버 항목의 매개 변수 3  보안  토큰
  • 드라이버 종료 시 매개 변수 4  보안  토큰

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: SECURITY_CONTEXT_CHANGED_BY_A_PRINT_DRIVER_CALL
  • 중지 코드: 0000D025
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

인쇄 필터가 파이프라인 관리자에게 잘못된 PrintTicket을 보냈습니다.

가능한 원인

이 검증 도구 중지는 IPrintTicketPart 부분이 SetPrintTicket 메서드로 전송되었지만 해당 콘텐츠가 PrintSchema를 준수하지 않을 때 발생합니다.

Application Verifier에서 표시하는 정보
  • 형식: - 이 검증 도구 중지는 %lS 메서드에 있었습니다. GUID를 사용하여 인쇄 필터를 식별합니다.
  • 매개 변수 1  인쇄  필터 GUID입니다. 이 매개 변수가 NULL이 아닌 경우 dd를 사용하여 덤프합니다.
  • PTConform에서 반환된 매개 변수 2  오류  메시지입니다. 이 매개 변수가 NULL이 아닌 경우 du를 사용하여 메시지를 덤프합니다.
  • 매개 변수 3-PrintTicket   XML 텍스트입니다. 이 매개 변수가 NULL이 아닌 경우 du를 사용하여 XML을 덤프합니다.
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: INVALID_FILTER_PRINTTICKET
  • 코드 중지: 0000D026
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

인쇄 필터가 파이프라인 관리자로부터 잘못된 PrintTicket를 받았습니다.

가능한 원인

이 검증 도구 중지는 GetPrintTicket 메서드를 통해 인쇄 필터에서 IPrintTicketPart 파트를 받았지만 해당 콘텐츠가 PrintSchema를 준수하지 않을 때 발생합니다.

Application Verifier에서 표시하는 정보
  • 형식: - 이 검증 도구 중지는 %lS 메서드에 있었습니다. GUID를 사용하여 인쇄 필터를 식별합니다.
  • 매개 변수 1  인쇄  필터 GUID입니다. 이 매개 변수가 NULL이 아닌 경우 dd를 사용하여 덤프합니다.
  • PTConform에서 반환된 매개 변수 2  오류  메시지입니다. 이 매개 변수가 NULL이 아닌 경우 du를 사용하여 메시지를 덤프합니다.
  • 매개 변수 3-PrintTicket   XML 텍스트입니다. 이 매개 변수가 NULL이 아닌 경우 du를 사용하여 XML을 덤프합니다.
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: INVALID_PIPELINE_PRINTTICKET
  • 코드 중지: 0000D027
  • 심각도: 경고
  • 일회성 오류: 아니요
  • 오류 보고서: 없음
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

활성 COM 콜백을 사용하여 인쇄 드라이버 DLL을 언로드합니다.

가능한 원인

대상 모듈이 언로드되는 동안 COM 인터페이스에 대한 긍정 참조 수가 검색되었습니다. 모듈에서 DllCanUnloadNow 내보내기의 잘못된 구현 또는 잘못된 참조 계산으로 인해 발생할 수 있습니다.

Application Verifier에서 표시하는 정보
  • 형식: -  시스템이 여전히 %lS 포인터를 보유하는 동안 이 검증 도구 중지는 %lS 모듈 언로드로 인해 발생했습니다.
  • 매개 변수 1-COM   인터페이스 주소입니다.
  • 콜백이 제공된 매개 변수 2 - 스택 추적입니다. dps를 사용하여 NULL이 아닌 경우 스택 추적을 덤프합니다.
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: DLL_PREMATURE_UNLOAD
  • 코드 중지: 0000D028
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

릴리스된 COM 인터페이스 사용 시도

가능한 원인

COM 인터페이스는 릴리스된 후 사용되었습니다. 이 중지 문제를 해결하려면: - 디버거에서 'k' 명령을 사용하여 현재 스택 추적을 덤프하여 릴리스된 인터페이스를 사용하려는 루틴을 식별합니다. - 사용 가능한 경우 중지의 두 번째 매개 변수와 함께 dps 명령을 사용하여 릴리스한 루틴의 스택 추적을 덤프합니다.

Application Verifier에서 표시하는 정보
  • 형식: - 이 검증 도구 중지 릴리스 후 사용 되 고 %lS 인터페이스에 의해 발생 했습니다.
  • 매개 변수 1-COM   인터페이스 주소입니다.
  • 참조 수가 0으로  갔을 때 릴리스 호출의 매개 변수 2 -스택 추적입니다. dps를 사용하여 NULL이 아닌 경우 스택 추적을 덤프합니다.
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: COM_INTERFACE_ALREADY_RELEASED
  • 코드 중지: 0000D029
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

ExitThread라는 인쇄 드라이버

가능한 원인

ExitThread라는 인쇄 드라이버 모듈입니다. 인쇄 드라이버 모듈이 ExitThread를 호출하면 소멸자를 호출하거나 다른 자동 정리를 수행하기 전에 스레드가 종료됩니다. 이로 인해 정의되지 않은 동작이 발생할 수 있습니다. 따라서 인쇄 드라이버는 항상 스레드 함수에서 반환되어야 합니다. 이 중지 문제를 해결하려면 디버거에서 'k' 명령을 사용하여 현재 스택 추적을 덤프하여 ExitThread를 호출한 루틴을 식별합니다.

Application Verifier에서 표시하는 정보
  • 매개 변수 1 - 사용되지 않음
  • 매개 변수 2 - 사용되지 않음
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: DRIVER_CALLED_EXITTHREAD
  • 중지 코드: 0000D02A
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

TerminateThread라는 인쇄 드라이버

가능한 원인

TerminateThread라는 인쇄 드라이버 모듈입니다. TerminateThread는 스레드가 종료되도록 하는 데 사용됩니다. 이 경우 대상 스레드는 사용자 모드 코드를 실행할 기회가 없습니다. 스레드에 연결된 DLL은 스레드가 종료된다는 알림을 받습니다. 시스템은 스레드의 초기 스택을 해제합니다. TerminateThread는 가장 극단적인 경우에만 사용해야 하는 위험한 함수입니다. 예를 들어 TerminateThread는 다음과 같은 문제가 발생할 수 있습니다. - 대상 스레드가 중요한 섹션을 소유하는 경우 중요한 섹션은 해제되지 않습니다. - 대상 스레드가 힙에서 메모리를 할당하는 경우 힙 잠금이 해제되지 않습니다. - 대상 스레드가 종료될 때 특정 kernel32 호출을 실행하는 경우 스레드 프로세스에 대한 kernel32 상태가 일치하지 않을 수 있습니다. - 대상 스레드가 공유 DLL의 전역 상태를 조작하는 경우 DLL의 상태가 소멸되어 DLL의 다른 사용자에게 영향을 줄 수 있습니다. 이 중지 문제를 해결하려면: 디버거에서 'k' 명령을 사용하여 TerminateThread를 호출한 모듈 및 루틴을 식별하여 현재 스택 추적을 덤프합니다.

Application Verifier에서 표시하는 정보
  • 매개 변수 1 - 사용되지 않음
  • 매개 변수 2 - 사용되지 않음
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: DRIVER_CALLED_TERMINATETHREAD
  • 중지 코드: 0000D02B
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

인쇄 필터가 현재 스레드의 COM 아파트 유형을 변경했습니다.

가능한 원인

이 검증 도구 중지는 인쇄 필터가 해당 메서드(InitializeFilter, StartOperation 또는 ShutdownOperation) 중 하나에서 COM 아파트 형식을 변경할 때 발생합니다. 디버거에서 'ln poi(<Param1>)' 명령을 사용하여 인쇄 필터 DLL의 이름을 식별합니다.

Application Verifier에서 표시하는 정보
  • 형식: -  이 검증 도구 중지는 인쇄 필터의 %lS 메서드가 COM 아파트 형식을 %lS(%d)에서 %lS(%d)로 변경하여 발생했습니다.
  • 매개 변수 1  필터  인터페이스 포인터입니다. 'ln poi(<Param1>)'를 사용하여 필터를 찾습니다.
  • 매개 변수 2 - 예상 아파트 유형
  • 매개 변수 3 - 실제 아파트 유형
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: COM_APARTMENT_TYPE_CHANGED
  • 코드 중지: 0000D02C
  • 심각도: 경고
  • 일회성 오류: 아니요
  • 오류 보고서: 없음
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

인쇄 필터 메서드를 호출한 후 현재 스레드에 대해 COM이 초기화되지 않습니다.

가능한 원인

이 검증 도구 중지는 인쇄 필터에 CoInitialize[Ex] 및 CoUninitialize 호출의 불균형이 있을 때 발생합니다. 이는 요청 아파트 형식이 스레드의 현재 형식과 일치하지 않는 경우와 같이 CoInitialize[Ex]가 예기치 않게 오류를 반환하기 때문일 수 있습니다. 디버거에서 'ln poi(<Param1>)' 명령을 사용하여 인쇄 필터 DLL의 이름을 식별합니다.

Application Verifier에서 표시하는 정보
  • 형식: -  이 검증 도구 중지는 해당 성공적인 CoInitialize[Ex]없이 COM의 CoUninitialize를 호출하는 인쇄 필터의 %lS 메서드로 인해 발생했을 수 있습니다.
  • 매개 변수 1  필터  인터페이스 포인터입니다. 'ln poi(<value>)'를 사용하여 필터를 찾습니다.
  • 매개 변수 2 - 사용되지 않음
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: COM_NOT_INITIALIZED
  • 코드 중지: 0000D02D
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

인쇄 드라이버가 PT/PC XML 문서의 AddRef/Release 호출이 일치하지 않습니다.

가능한 원인

이 검증 도구 중지는 인쇄 드라이버가 XML 문서의 참조 횟수(예: PrintTicket 또는 PrintCapabilities)를 잘못 관리하는 경우에 발생합니다. 참조 수는 메서드 호출에 의해 변경될 것으로 예상되지 않았으며 XML DOC에서 누수 및/또는 분리된 중요 섹션으로 이어질 수 있습니다.

Application Verifier에서 표시하는 정보
  • 형식: -  %lS 메서드 호출 후 %lS XML 문서 참조 수가 %d이고 예상 %d입니다.
  • 매개 변수 1 - 잘못된 메서드 호출의 이름입니다. NULL이 아닌 경우 'du'를 사용하여 표시합니다.
  • XML 문서의 매개 변수 2  형식 입니다. NULL이 아닌 경우 'du'를 사용하여 표시합니다.
  • 매개 변수 3 - 현재 참조 수입니다.
  • 매개 변수 4 - 예상 참조 수입니다.

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: XML_DOM_REFCOUNT_CHANGED
  • 코드 중지: 0000D02E
  • 심각도: 오류
  • 일회성 오류: 아니요
  • 오류 보고서: 중단
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

FatalExit가 호출되었습니다.

가능한 원인

FatalExit가 호출되었습니다. 이는 다른 검증 도구 중지가 보고될 수 있는 비정상적인 종료의 한 형태이지만(예: 누수) 시정 작업이 불가능합니다(즉, 정지가 신뢰할 수 없고 시끄러운 경우). 이 중지 문제를 해결하려면 디버거에서 'k' 명령을 사용하여 현재 스택 추적을 덤프하여 FatalExit를 호출한 모듈 및 루틴을 식별합니다.

Application Verifier에서 표시하는 정보
  • 매개 변수 1 - 종료 코드입니다.
  • 매개 변수 2 - 사용되지 않음
  • 매개 변수 3 - 사용되지 않음
  • 매개 변수 4 - 사용되지 않음

추가 정보
  • 테스트 계층: PrintDriver
  • 중지 ID: FATALEXIT
  • 코드 중지: 0000D02F
  • 심각도: 정보
  • 일회성 오류: 아니요
  • 오류 보고서: 없음
  • 파일에 로그온: 예
  • 백트레이스 만들기: 예

참고 항목

애플리케이션 검증 도구 - 코드 및 정의 중지

애플리케이션 검증 도구 - 개요

애플리케이션 검증 도구 - 기능

애플리케이션 검증 도구 - 애플리케이션 테스트

애플리케이션 검증 도구 - 애플리케이션 검증 도구 내의 테스트

애플리케이션 검증 도구 - 애플리케이션 검증 도구 디버깅 중지

애플리케이션 검증 도구 - 질문과 대답