次の方法で共有


アプリケーション検証ツール - 停止コード - 印刷

この一連のテストには、次の停止コードが含まれています。

リークしたプリンター ハンドルが検出されました

考えられる原因

アプリケーションが終了したときに、開いているプリンター ハンドルが検出されました。 多くの場合、作成スレッドがプリンター ハンドルを閉じるには ClosePrinter() を呼び出しませんでした。 この停止のトラブルシューティングを行うには、この検証ツール停止の 2 番目のパラメーターを使用して、プリンター ハンドルを開いたスレッドを特定して、スタック トレースを提供します。 デバッガーで dps コマンドを使用してスタック トレースをダンプします。 vfPrint を呼び出した最初の非 winspool モジュール名と vfPrint 以外のモジュール名を見つけます。VfHookOpenPrinter* または vfPrint!VfHookAddPrinter* - これは通常、リスト内の 4 番目または 6 番目のスタック フレームです。

アプリケーション検証ツールによって表示される情報
  • パラメーター 1 - プリンター ハンドルが漏れ出しています。
  • Parameter 2 - 初期化スタック トレース。 このパラメーターが NULL でない場合は、dps を使用してスタックをダンプします。
  • パラメーター 3 - ハンドルを開いたスレッドのスレッド ID。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintAPI
  • 停止 ID: LEAKED_PRINTER_HANDLE
  • ストップコード: 0000A000
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

リークしたプリンター変更通知ハンドルが検出されました

考えられる原因

アプリケーションが終了したときに、閉じられなかったプリンター変更通知ハンドルが検出されました。 ほとんどの場合、ハンドルを開いたスレッドは、スレッドが終了する前に FindClosePrinterChangeNotification() を呼び出してハンドルを閉じませんでした。 この停止のトラブルシューティングを行うには、プリンター変更通知ハンドルを開いたスレッドを特定します。この停止の 2 番目のパラメーターはスタック アドレスを提供します。 dps コマンドを使用してスタック トレースをダンプします。 vfPrint!VfHookFindFirstPrinterChangeNotificationを呼び出した最初の非 winspool モジュール名と vfPrint 以外のモジュール名を見つけます。 これは通常、4 番目のスタック フレームにあります。

アプリケーション検証ツールによって表示される情報
  • パラメーター 1 - プリンター変更通知ハンドルがリークしています。
  • Parameter 2 - 初期化スタック トレース。 スタック トレースが NULL でない場合は、dps を使用してダンプします。
  • パラメーター 3 - それを使用する最後のスレッドのスレッド ID。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintAPI
  • 停止 ID: LEAKED_PRINTER_CHANGE_NOTIFICATION_HANDLE
  • ストップコード: 0000A001
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

リークしたPRINTER_NOTIFY_INFOが検出されました

考えられる原因

プログラムの終了時に、解放されなかった割り当てられたPRINTER_NOTIFY_INFO オブジェクトが検出されました。 ほとんどの場合、終了する前に FreePrinterNotifyInfo() を呼び出して解放する必要があります。 この停止のトラブルシューティングを行うには:winspool を呼び出し、この検証ツール停止の 2 番目のパラメーターを使用して、PRINTER_NOTIFY_INFO オブジェクトをその代わりに割り当てるルーチンを決定します。 デバッガーで dps コマンドを使用して初期化スタック トレースをダンプします。 vfPrint!VfHookFindNextPrinterChangeNotification を呼び出した最初の非 winspool モジュール名と vfPrint 以外のモジュール名を見つけます。 通常、このルーチンは 3 番目のスタック フレームにあります。

アプリケーション検証ツールによって表示される情報
  • パラメーター 1 - リークしたPRINTER_NOTIFY_INFO オブジェクトへのポインター。
  • Parameter 2 - 初期化スタック トレース。 スタック トレースが NULL でない場合は、dps を使用してダンプします。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintAPI
  • 停止 ID: LEAKED_PPRINTER_NOTIFY_INFO
  • ストップコード: 0000A002
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

プリンター ハンドルの使用中に検出された競合状態

考えられる原因

1 つのプリンター ハンドルが複数のスレッドで同時に使用されています。 プリンター ハンドルはスレッド セーフではありません。つまり、複数のスレッドでプリンター ハンドルを同時に使用することは、ハンドルへのアクセスを安全に調整するためのアプリケーション レベルの同期なしでは許可されません。 アプリケーションは、各スレッドで個別のプリンター ハンドルを開くか、Win32 同期 API を使用してプリンター ハンドルへのカスタム同期アクセスを提供する必要があります。 Win32 同期 API の詳細については、 https://zcusa.951200.xyz/windows/win32/sync/synchronization-functions.に記載しました

アプリケーション検証ツールによって表示される情報
  • パラメーター 1 - アクセス中のプリンター ハンドル。
  • Parameter 2 - 現在の スレッド ID。
  • Parameter 3 - 同時実行スレッドのスレッド ID。
  • パラメーター 4 - コンカレンシーの数。

追加情報
  • テスト レイヤー: PrintAPI
  • 停止 ID: MULTITHREADED_ACCESS_TO_PRINTER_HANDLE
  • ストップコード: 0000A003
  • 重要度: 警告
  • 1 回限りエラー: いいえ
  • エラー レポート: なし
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

プリンター ハンドルへのマルチスレッド アクセスの可能性が検出されました

考えられる原因

プリンター ハンドルは、プリンター ハンドルを作成したスレッドとは異なるスレッドで使用されました。 プリンター ハンドルはスレッド セーフではありません。つまり、複数のスレッドでプリンター ハンドルを同時に使用することは、ハンドルへのアクセスを安全に調整するためのアプリケーション レベルの同期なしでは許可されません。 アプリケーションは、各スレッドで個別のプリンター ハンドルを開くか、Win32 同期 API を使用してプリンター ハンドルへのカスタム同期アクセスを提供する必要があります。 Win32 同期 API の詳細については、 https://zcusa.951200.xyz/windows/win32/sync/synchronization-functions.に記載しました

アプリケーション検証ツールによって表示される情報
  • パラメーター 1 - アクセス中のプリンター ハンドル。
  • Parameter 2 - 初期化スレッドのスレッド ID。
  • パラメーター 3 - 初期化のスタック トレース。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintAPI
  • Stop ID: PRINTER_HANDLE_ACCESSED_NOT_ON_THE_THREAD_THAT_OPENED_IT
  • ストップコード: 0000A004
  • 重要度: 警告
  • 1 回限りエラー: いいえ
  • エラー レポート: なし
  • ファイルにログを記録する: いいえ
  • バックトレースの作成: いいえ

閉じたプリンター ハンドルの使用を試みる

考えられる原因

閉じた後、プリンター ハンドルが使用されました。 閉じた プリンタ ハンドルを使用しようとしたルーチンを識別するには、デバッガーで 'k' コマンドを使用して、現在のスタック トレースをダンプします。 ハンドルを閉じたルーチンのスタック・トレースをダンプするには、停止の 2 番目のパラメーターと共に dps コマンドを使用します。

アプリケーション検証ツールによって表示される情報
  • パラメーター 1 - アクセス中のプリンター ハンドル。
  • Parameter 2 - 終了のスタック トレース。 スタック トレースが NULL でない場合は、dps を使用してダンプします。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintAPI
  • Stop ID: PRINTER_HANDLE_ALREADY_CLOSED
  • ストップコード: 0000A005
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

不明なプリンター ハンドルの使用を試みる

考えられる原因

OpenPrinterA、OpenPrinterW、OpenPrinter2W (Windows Vista の場合)、AddPrinterA、または AddPrinterW を呼び出して開かなかったプリンター ハンドルを使用しようとしました。 このアクションを試行したルーチンのスタック トレースを表示するには、デバッガーで 'k' コマンドを使用します。

アプリケーション検証ツールによって表示される情報
  • パラメーター 1 - アクセス中のプリンター ハンドル。
  • Parameter 2 - 使用されていません。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintAPI
  • 停止 ID: INVALID_PRINTER_HANDLE
  • ストップコード: 0000A006
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

閉じたプリンター変更通知ハンドルの使用を試みる

考えられる原因

プリンター変更通知ハンドルは、閉じられた後に使用されました。 閉じた プリンタ変更通知ハンドルを使用しようとしたルーチンを表示するには、デバッガーで 'k' コマンドを使用して、現在のスタック トレースをダンプします。 ハンドルを閉じたルーチンのスタック・トレースをダンプするには、停止の 2 番目のパラメーターと共に dps コマンドを使用します。

アプリケーション検証ツールによって表示される情報
  • パラメーター 1 - プリンター変更通知ハンドルにアクセスしています。
  • Parameter 2 - 終了のスタック トレース。 スタック トレースが NULL でない場合は、dps を使用してダンプします。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintAPI
  • Stop ID: PRINTER_CHANGE_NOTIFICATION_HANDLE_ALREADY_CLOSED
  • ストップコード: 0000A007
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

無効なプリンタ変更通知ハンドルの使用を試みる

考えられる原因

FindFirstPrinterChangeNotification Win32 API 関数で開かれないハンドルが、プリンター変更通知ハンドルとして渡されました。 このアクションを試行したルーチンのスタック トレースを表示するには、デバッガーで 'k' コマンドを使用します。

アプリケーション検証ツールによって表示される情報
  • パラメーター 1 - プリンター変更通知ハンドルにアクセスしています。
  • Parameter 2 - 使用されていません。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintAPI
  • Stop ID: UNKNOWN_PRINTER_CHANGE_NOTIFICATION_HANDLE
  • ストップコード: 0000A008
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

解放されたPRINTER_NOTIFY_INFO オブジェクトの使用を試みる

考えられる原因

PRINTER_NOTIFY_INFO オブジェクトは、解放された後に使用されました。 解放されたPRINTER_NOTIFY_INFO オブジェクトを使用しようとしたルーチンを確認するには、デバッガーで 'k' コマンドを使用して、現在のスタック トレースをダンプします。 ハンドルを閉じたルーチンのスタック・トレースをダンプするには、停止の 2 番目のパラメーターと共に dps コマンドを使用します。

アプリケーション検証ツールによって表示される情報
  • パラメーター 1 - アクセスするPRINTER_NOTIFY_INFOのアドレス。
  • Parameter 2 - 終了のスタック トレース。 スタック トレースが NULL でない場合は、dps を使用してダンプします。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintAPI
  • Stop ID: PRINTER_NOTIFY_INFO_ALREADY_FREED
  • ストップコード: 0000A009
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

無効なPRINTER_NOTIFY_INFO オブジェクトの使用を試みる

考えられる原因

PRINTER_NOTIFY_INFO オブジェクトが FindNextPrinterChangeNotification Win32 API 関数によって開かれていました。 このアクションを試行したルーチンのスタック トレースを表示するには、デバッガーで 'k' コマンドを使用します。

アプリケーション検証ツールによって表示される情報
  • パラメーター 1 - アクセスするPRINTER_NOTIFY_INFOのアドレス。
  • Parameter 2 - 使用されていません。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintAPI
  • 停止 ID: INVALID_PRINTER_NOTIFY_INFO
  • ストップコード: 0000A00A
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

開いているプリンター ハンドルが多すぎます

考えられる原因

開かれたプリンター ハンドルが多すぎます。 リソース リークが発生している可能性があります。

アプリケーション検証ツールによって表示される情報
  • パラメーター 1  - 現在開いているプリンター ハンドルの数。
  • Parameter 2 - 使用されていません。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintAPI
  • 停止 ID: TOO_MANY_OPENED_PRINTER_HANDLES
  • ストップコード: 0000A00B
  • 重要度: 警告
  • 1 回限りエラー: いいえ
  • エラー レポート: なし
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

OpenPrinter2W は、以前のバージョンの Windows の winspool.drv からエクスポートされているようです

考えられる原因

不明。 このエラーを Microsoft に報告します。

アプリケーション検証ツールによって表示される情報
  • Parameter 1 - 使用されていません。
  • Parameter 2 - 使用されていません。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintAPI
  • 停止 ID: WINSPOOL_OPENPRINTER2W_EXPORTED_ON_PRE_VISTA_OS
  • ストップコード: 0000A00C
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

開いている PrintTicket プロバイダー ハンドルが多すぎます (HPTPROVIDER)

考えられる原因

PTOpenProvider(Ex) を呼び出して開かれた PrintTicket プロバイダー ハンドルが多すぎます。 これは、ハンドルが不要になったときに PTCloseProvider を呼び出さなくなり、リソース リークが発生した結果である可能性があります。

アプリケーション検証ツールによって表示される情報
  • パラメーター 1 - 現在開いている PrintTicket プロバイダー ハンドルの数。
  • Parameter 2 - 使用されていません。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintAPI
  • 停止 ID: TOO_MANY_OPENED_PRINT_TICKET_PROVIDER_HANDLES
  • ストップコード: 0000A00D
  • 重要度: 警告
  • 1 回限りエラー: いいえ
  • エラー レポート: なし
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

閉じた PrintTicket プロバイダー ハンドルの使用を試みます (HPTPROVIDER)

考えられる原因

PrintTicket プロバイダー ハンドルは、解放された後に使用されました。 閉じた PrintTicket プロバイダー ハンドラーを使用しようとしたルーチンを表示するには、デバッガーで 'k' コマンドを使用して現在のスタック トレースをダンプします。 ハンドルを閉じたルーチンのスタック・トレースをダンプするには、停止の 2 番目のパラメーターと共に dps コマンドを使用します。

アプリケーション検証ツールによって表示される情報
  • Parameter 1 - アクセスされている HPTPROVIDER ハンドル
  • Parameter 2 - 終了のスタック トレース。 スタック トレースが NULL でない場合は、dps を使用してダンプします。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintAPI
  • Stop ID: PRINT_TICKET_PROVIDER_HANDLE_ALREADY_CLOSED
  • ストップコード: 0000A00E
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

不明の PrintTicket プロバイダー ハンドルの使用を試みます (HPTPROVIDER)

考えられる原因

PtOpenProvider または PTOpenProviderEx を呼び出して開かれていない PrintTicket プロバイダー ハンドルが使用されました。

アプリケーション検証ツールによって表示される情報
  • Parameter 1 - アクセスされている HPTPROVIDER ハンドル
  • Parameter 2 - 使用されていません。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintAPI
  • 停止 ID: UNKNOWN_PRINT_TICKET_PROVIDER_HANDLE
  • ストップコード: 0000A00F
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

PrintTicket プロバイダー ハンドルの使用中に検出された競合状態

考えられる原因

PrintTicket プロバイダー ハンドルが複数のスレッドで同時に使用されていました。 これには、ハンドルへのアクセスのアプリケーション レベルの同期が必要です。 PrintTicket プロバイダー ハンドルはスレッド セーフではありません。つまり、複数のスレッドで PrintTicket プロバイダー ハンドルを同時に使用することはできません。 代わりに、アプリケーションは、各スレッドで個別の PrintTicket プロバイダー ハンドルを開くか、Win32 同期 API を使用して PrintTicket プロバイダー ハンドルへのカスタム同期アクセスを提供する必要があります。 Win32 同期 API の詳細については、 https://zcusa.951200.xyz/windows/win32/sync/synchronization-functions.に記載しました

アプリケーション検証ツールによって表示される情報
  • Parameter 1 - アクセスしている PrintTicket プロバイダーハンドル
  • Parameter 2 - 現在の スレッド ID。
  • Parameter 3 - 同時実行スレッドのスレッド ID。
  • パラメーター 4 - コンカレンシーの数。

追加情報
  • テスト レイヤー: PrintAPI
  • 停止 ID: MULTITHREADED_ACCESS_TO_PRINT_TICKET_PROVIDER_HANDLE
  • ストップコード: 0000A010
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

PrintTicket プロバイダー ハンドルへのマルチスレッド アクセスの可能性が検出されました

考えられる原因

これは、PrintTicket プロバイダー ハンドルが、それを作成したスレッドとは異なるスレッドで使用されたことを示す警告です。 ハンドルに安全にアクセスするには、アプリケーション レベルの同期が必要になる場合があります。 PrintTicket プロバイダー ハンドルはスレッド セーフではありません。つまり、複数のスレッドで PrintTicket プロバイダー ハンドルを同時に使用することはできません。 代わりに、アプリケーションは、各スレッドで個別の PrintTicket プロバイダー ハンドルを開くか、Win32 同期 API を使用して PrintTicket プロバイダー ハンドルへのカスタム同期アクセスを提供する必要があります。 Win32 同期 API の詳細については、 https://zcusa.951200.xyz/windows/win32/sync/synchronization-functions.に記載しました

アプリケーション検証ツールによって表示される情報
  • Parameter 1 - アクセスしている PrintTicket プロバイダーハンドル
  • Parameter 2 - 初期化スレッドのスレッド ID。
  • パラメーター 3 - 初期化のスタック トレース。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintAPI
  • Stop ID: PRINT_TICKET_PROVIDER_HANDLE_ACCESSED_NOT_ON_THE_THREAD_THAT_OPENED_IT
  • ストップコード: 0000A011
  • 重要度: 警告
  • 1 回限りエラー: いいえ
  • エラー レポート: なし
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

リークした PrintTicket プロバイダー ハンドルが検出されました

考えられる原因

スレッドが終了したときに、開いている PrintTicket プロバイダー ハンドルが検出されました。 作成ルーチンは、終了する前に PTCloseProvider() を呼び出して閉じなかった可能性があります。 この停止のトラブルシューティングを行うには、この検証ツール停止の 2 番目のパラメーターを使用して、PrintTicket プロバイダーを開いたスレッドを特定して、スタック トレースを提供します。 デバッガーで dps コマンドを使用してスタック トレースをダンプします。 vfPrint を呼び出した最初の非 prntvpt モジュール名と vfPrint 以外のモジュール名を見つけます。VfPTOpenProvider または vfPrint!VfPTOpenProviderEx - これは通常、リスト内の 4 番目または 6 番目のスタック フレームです。

アプリケーション検証ツールによって表示される情報
  • Parameter 1 - リークしている PrintTicket プロバイダーハンドル
  • Parameter 2 - 初期化スタック トレース。 スタック トレースが NULL でない場合は、dps を使用してダンプします。
  • パラメーター 3 - ハンドルを開いたスレッドのスレッド ID。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintAPI
  • Stop ID: LEAKED_PRINT_TICKET_PROVIDER_HANDLE
  • ストップコード: 0000A012
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

開いているプリンター変更通知ハンドルが多すぎます

考えられる原因

開かれたプリンター変更通知ハンドルが多すぎます。 リソース リークが発生している可能性があります。 リソース リークの一般的な形式の 1 つは、ルーチンがプリンター変更通知ハンドルを開き、終了する前に閉じない場合です。

アプリケーション検証ツールによって表示される情報
  • パラメーター 1 - 現在開いているプリンター変更通知ハンドルの数。
  • Parameter 2 - 使用されていません。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintAPI
  • 停止 ID: TOO_MANY_OPENED_PRINTER_CHANGE_NOTIFICATION_HANDLES
  • ストップコード: 0000A013
  • 重要度: 警告
  • 1 回限りエラー: いいえ
  • エラー レポート: なし
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

開いているPRINTER_NOTIFY_INFO オブジェクトが多すぎます

考えられる原因

開かれたPRINTER_NOTIFY_INFOオブジェクトが多すぎます。 リソース リークが発生している可能性があります。 リソース リークの一般的な形式の 1 つは、ルーチンがPRINTER_NOTIFY_INFO オブジェクトを開き、終了する前に閉じない場合です。

アプリケーション検証ツールによって表示される情報
  • パラメーター 1 - 現在開かれているPRINTER_NOTIFY_INFO オブジェクトの数。
  • Parameter 2 - 使用されていません。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintAPI
  • 停止 ID: TOO_MANY_OPENED_PRINTER_NOTIFY_INFO_OBJECTS
  • ストップコード: 0000A014
  • 重要度: 警告
  • 1 回限りエラー: いいえ
  • エラー レポート: なし
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

無効な PrintTicket の使用を試みる

考えられる原因

この検証ツールの停止は、アプリケーションが PrintTicket メソッドを無効な PrintTicket で呼び出したときに発生します。

アプリケーション検証ツールによって表示される情報
  • 形式: - この検証ツールの停止は、アプリケーションが無効な PrintTicket で %lS メソッドを呼び出したときに発生しました
  • パラメーター 1 - PTConform によって返されるエラー メッセージ。 このパラメーターが NULL でない場合は、du を使用してメッセージをダンプします。
  • Parameter 2 - PrintTicket XML テキスト。 このパラメーターが NULL でない場合は、du を使用して XML をダンプします。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintAPI
  • 停止 ID: INVALID_APPLICATION_PRINTTICKET
  • ストップコード: 0000A015
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

無効な PrintCapabilities ドキュメントの使用を試みる

考えられる原因

この検証ツールの停止は、アプリケーションが PrintTicket メソッドを無効な PrintCapabilities ドキュメントで呼び出したときに発生します。

アプリケーション検証ツールによって表示される情報
  • 形式: - この検証ツールの停止は、アプリケーションが無効な PrintCapabilities ドキュメントで %lS メソッドを呼び出したときに発生しました
  • パラメーター 1 - PTConform によって返されるエラー メッセージ。 このパラメーターが NULL でない場合は、du を使用してメッセージをダンプします。
  • Parameter 2 - PrintCapabilities XML テキスト。 このパラメーターが NULL でない場合は、du を使用して XML をダンプします。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintAPI
  • 停止 ID: INVALID_APPLICATION_PRINTCAPABILITIES
  • ストップコード: 0000A016
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

PrintTicket メソッドに無効な NULL 引数が渡されました

考えられる原因

この検証ツールの停止は、アプリケーションが PrintTicket メソッドを無効な NULL 引数で呼び出したときに発生します。

アプリケーション検証ツールによって表示される情報
  • 形式: - この検証ツールの停止は、アプリケーションが NULL %lS 引数を指定して %lS メソッドを呼び出したときに発生しました
  • Parameter 1 - 使用されていません。
  • Parameter 2 - 使用されていません。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintAPI
  • 停止 ID: PRINTTICKET_API_INVALID_NULL_ARGUMENT
  • ストップコード: 0000A017
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

PTConform に予期しないエラーが発生しました

考えられる原因

この検証ツールの停止は、PrintTicket/PrintCapabilities が PrintSchema に準拠していることを確認しようとしたときに、PrintVerifier で予期しないエラーが発生したときに発生します。 このエラーは、PrintVerifier で問題になる可能性があるため、Microsoft に報告してください。

アプリケーション検証ツールによって表示される情報
  • Parameter 1 - 使用されていません。
  • Parameter 2 - 使用されていません。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintAPI
  • 停止 ID: PTCONFORM_UNEXPECTED_ERROR
  • ストップコード: 0000A018
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

DllMain から呼び出された無効な印刷 API

考えられる原因

DllMain 内からの呼び出しをサポートしていないプリント API への呼び出しが行われました。 Win32 プリント API だけでなく、多くの Win32 API を DllMain から呼び出すことはできません。 詳細については、MSDN ライブラリの DllMain に関するドキュメントを参照してください。

アプリケーション検証ツールによって表示される情報
  • 形式: -  DllMain から呼び出される印刷 API: %s
  • Parameter 1 - 使用されていません。
  • Parameter 2 - 使用されていません。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintAPI
  • 停止 ID: UNSUPPORTED_API_CALL_IN_DLLMAIN
  • ストップコード: 0000A019
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

リークしたスプール・ファイル・ハンドルが検出されました

考えられる原因

アプリケーションが終了したときに、開いているスプール ファイル ハンドルが検出されました。 ほとんどの場合、CloseSpoolFileHandle() が呼び出されませんでした。 この停止のトラブルシューティングを行うには:プリンター ハンドルを開いたスレッドを特定します。 パラメーター 2 が NULL でない場合は、dps を使用してダンプします。 vfPrint を呼び出した最初の非 winspool モジュール名と vfPrint 以外のモジュール名を見つけます。VfHookOpenPrinter* または vfPrint!VfHookAddPrinter*. 通常、このルーチンはリスト内の 4 番目または 6 番目のスタック フレームです。

アプリケーション検証ツールによって表示される情報
  • パラメーター 1 - ハンドルがリークされています。
  • Parameter 2 - 初期化スタック トレース。 このパラメーターが NULL でない場合は、dps を使用してスタックをダンプします。
  • パラメーター 3 - ハンドルを開いたスレッドのスレッド ID。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintAPI
  • 停止 ID: LEAKED_SPOOL_FILE_HANDLE
  • ストップコード: 0000A01A
  • 重要度: 警告
  • 1 回限りエラー: いいえ
  • エラー レポート: なし
  • ファイルにログを記録する: いいえ
  • バックトレースの作成: いいえ

閉じたスプール・ファイル・ハンドルの使用を試みる

考えられる原因

スプール・ファイル・ハンドルは、クローズされた後に使用されました。 この停止のトラブルシューティングを行うには、デバッガーで 'k' コマンドを使用して現在のスタック トレースをダンプし、閉じたハンドルを使用しようとしたルーチンを識別します。 停止の 2 番目のパラメーターと共に dps コマンドを使用して、ハンドルを閉じたルーチンのスタック・トレースをダンプします。

アプリケーション検証ツールによって表示される情報
  • Parameter 1 - アクセスされるスプール ファイル ハンドル。
  • Parameter 2 - 終了のスタック トレース。 スタック トレースが NULL でない場合は、dps を使用してダンプします。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintAPI
  • Stop ID: SPOOL_FILE_HANDLE_ALREADY_CLOSED
  • ストップコード: 0000A01B
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

不明なスプール・ファイル・ハンドルの使用を試みる

考えられる原因

GetSpoolFileHandle または CommitSpoolData を呼び出して開かなかったスプール ファイル ハンドルを使用しようとしました。 このアクションを試行したルーチンのスタック トレースを確認するには、デバッガーで 'k' コマンドを使用します。

アプリケーション検証ツールによって表示される情報
  • パラメーター 1 - アクセス中のハンドル。
  • Parameter 2 - 使用されていません。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintAPI
  • 停止 ID: INVALID_SPOOL_FILE_HANDLE
  • ストップコード: 0000A01C
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

開いているスプール ファイル ハンドルが多すぎる

考えられる原因

開かれたスプール・ファイル・ハンドルが多すぎます。 リソース リークが発生している可能性があります。

アプリケーション検証ツールによって表示される情報
  • パラメーター 1 - 現在開いているハンドルの数。
  • Parameter 2 - 使用されていません。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintAPI
  • 停止 ID: TOO_MANY_OPENED_SPOOL_FILE_HANDLES
  • ストップコード: 0000A01D
  • 重要度: 警告
  • 1 回限りエラー: いいえ
  • エラー レポート: なし
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

DEVMODE バッファー パラメーターは、読み取り不可能なメモリ ページにまたがっています。

考えられる原因

この停止は、DEVMODE バッファーが既に解放されていること、DMSize メンバーと dmDriverExtra メンバーに必要以上の値を割り当てることによって DEVMODE バッファーが正しく構築されなかった、NULL 以外のバッファーが想定されている場合に NULL 開発モード バッファーが使用された、といういくつかの条件が原因で発生する可能性があります。

アプリケーション検証ツールによって表示される情報
  • 形式: -  この検証ツールの停止は、不適切な DEVMODE バッファーで印刷サブシステムを呼び出したソフトウェア コンポーネントによって発生しました。 現在のスタック トレースとチェックを確認します。バグの場所を特定するために、devmode の割り当て、構築、有効期間を確認します。
  • パラメーター 1 - 無効な DEVMODE バッファー
  • パラメーター 2 - devmode dmSize フィールドと dmDriverExtra フィールドから計算される合計バッファー サイズ。 バッファーが読み取り不可能なメモリ内に完全に存在する場合は 0。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintAPI
  • 停止 ID: DEVMODE_BUFFER_SPANS_IN_NON_READABLE_MEMORY_PAGE
  • ストップコード: 0000A01E
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

アクティブな COM コールバックを使用したモジュールのアンロード。

考えられる原因

ターゲット モジュールのアンロード中に COM インターフェイスの正の refcount が検出されました。 モジュールでの DllCanUnloadNow エクスポートの不適切な実装または正しくない参照カウントが原因である可能性があります。

アプリケーション検証ツールによって表示される情報
  • 形式: -  この検証ツールの停止は、システムが %lS ポインターを保持している間に %lS モジュールのアンロードが原因で発生しました。
  • Parameter 1 - COM インターフェイス アドレス。
  • Parameter 2 - コールバックが指定されたスタック トレース。 スタック トレースが NULL でない場合は、dps を使用してダンプします。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintAPI
  • 停止 ID: MODULE_UNLOAD
  • ストップコード: 0000A01F
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

RegisterForPrintAsyncNotifications によって返された非同期通知ハンドルが正しく解放されませんでした

考えられる原因

RegisterForPrintAsyncNotifications API 関数によって割り当てられたハンドルは、プログラムが終了するまで解放されませんでした。 ほとんどの場合、終了する前に UnRegisterForPrintAsyncNotifications() を呼び出して解放する必要があります。 この停止のトラブルシューティングを行うには:この検証ツール停止の 2 番目のパラメーターを使用して、winspool を呼び出してハンドルを割り当てるルーチンを決定します。 デバッガーで dps コマンドを使用して初期化スタック トレースをダンプします。 vfPrint!VfHookRegisterForPrintAsyncNotifications を呼び出した最初の非 winspool モジュール名と vfPrint 以外のモジュール名を見つけます。 通常、このルーチンは 3 番目のスタック フレームにあります。

アプリケーション検証ツールによって表示される情報
  • Parameter 1 - ハンドル値。
  • Parameter 2 - 初期化スタック トレース。 スタック トレースが NULL でない場合は、dps を使用してダンプします。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintAPI
  • 停止 ID: LEAKED_ASYNC_NOTIFY_HANDLE
  • ストップコード: 0000A020
  • 重要度: 警告
  • 1 回限りエラー: いいえ
  • エラー レポート: なし
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

UnRegisterForPrintAsyncNotifications で無効なハンドルの使用を試みます。

考えられる原因

ハンドルが RegisterForPrintAsyncNotifications Win32 API 関数によって開かれていました。 このアクションを試行したルーチンのスタック トレースを表示するには、デバッガーで 'k' コマンドを使用します。

アプリケーション検証ツールによって表示される情報
  • Parameter 1 - ハンドル値。
  • Parameter 2 - 使用されていません。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintAPI
  • 停止 ID: INVALID_ASYNC_NOTIFY_HANDLE
  • ストップコード: 0000A021
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

UnRegisterForPrintAsyncNotifications API 関数で閉じたハンドルの使用を試みる

考えられる原因

非同期通知ハンドルは、閉じられた後に使用されました。 閉じた プリンタ ハンドルを使用しようとしたルーチンを表示するには、デバッガーで 'k' コマンドを使用して、現在のスタック トレースをダンプします。 ハンドルを閉じたルーチンのスタック・トレースをダンプするには、停止の 2 番目のパラメーターと共に dps コマンドを使用します。

アプリケーション検証ツールによって表示される情報
  • Parameter 1 - ハンドル値。
  • Parameter 2 - 終了のスタック トレース。 スタック トレースが NULL でない場合は、dps を使用してダンプします。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintAPI
  • Stop ID: ASYNC_NOTIFY_HANDLE_ALREADY_CLOSED
  • ストップコード: 0000A022
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

サードパーティの関数がエラーを報告するが、入力インターフェイスの参照数が増加する

考えられる原因

サードパーティのメソッドは、インターフェイス ポインターを入力として受け取ります。 このようなメソッドが失敗したコードを返す場合は、インターフェイスの ref カウントメイン同じである必要があります。 しかし、この場合、参照カウントが増加しました。

アプリケーション検証ツールによって表示される情報
  • 形式: -  %lS メソッドは %x エラー コードを返しますが、%lS パラメーターの ref カウントを増やします。
  • Parameter 1 - 呼び出されたインターフェイス ポインター。 NULL の場合、呼び出された関数は静的です。
  • パラメーター 2 - 入力インターフェイス ポインター。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintAPI
  • 停止 ID: REFCOUNT_PLUS_AFTER_FAIL
  • ストップコード: 0000A023
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

Windows API 関数はエラーを報告しますが、入力インターフェイスの参照数が増加します

考えられる原因

API メソッドは、インターフェイス ポインターを入力として受け取ります。 このようなメソッドが失敗したコードを返す場合は、インターフェイスの ref カウントメイン同じである必要があります。 しかし、この場合、参照カウントが増加しました。 API コードで問題が発生する可能性があるため、このエラーを Microsoft に報告してください。

アプリケーション検証ツールによって表示される情報
  • 形式: -  %lS メソッドは %x エラー コードを返しますが、%lS パラメーターの ref カウントを増やします。
  • Parameter 1 - 呼び出されたインターフェイス ポインター。 NULL の場合、呼び出された関数は静的です。
  • パラメーター 2 - 入力インターフェイス ポインター。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintAPI
  • Stop ID: REFCOUNT_PLUS_AFTER_API_FAIL
  • ストップコード: 0000A024
  • 重要度: 警告
  • 1 回限りエラー: いいえ
  • エラー レポート: なし
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

オペレーティング システムによる IPrintAsyncNotifyChannel コントラクト違反。

考えられる原因

IPrintAsyncNotifyChannel のプラットフォーム実装が、IPrintAsyncNotifyChannel によって暗黙的または定義されている特別なコントラクトの一部に違反しました。 IPrintAsyncNotifyChannel には、AddRef と Release に対する特別な例外があります。 そのためには、プラットフォームが OnEventNotify と ChannelClosed を、チャネルの作成時と同じポインター値で呼び出す必要があります。

アプリケーション検証ツールによって表示される情報
  • Format: - %s が間違ったインターフェイス ポインターで呼び出されました。
  • Parameter 1 - 実際のインターフェイス ポインター。
  • パラメーター 2 - 必要なインターフェイス ポインター。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintAPI
  • 停止 ID: ASYNCCHANNEL_OS_CONTRACT_VIOLATION
  • ストップコード: 0000A025
  • 重要度: 警告
  • 1 回限りエラー: いいえ
  • エラー レポート: なし
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

チャネル コンシューマーによる IPrintAsyncNotifyChannel コントラクト違反。

考えられる原因

双方向チャネルでは、SendNotification、CloseChannel を呼び出すか、インターフェイス ポインターで最後のリリースを行うと、"所有権" が放棄されます。 チャネルを作成して最初の通知を送信した後、コールバックの OnEventNotify が呼び出されるまで Release() を呼び出すことはできません。 CloseChannel() を呼び出すか、ChannelClosed 通知を取得する場合は、最終的な Release() 呼び出しを実行しないでください。

アプリケーション検証ツールによって表示される情報
  • Format: - %s が呼び出されましたが、チャネル '所有権' は現在、印刷スプーラーに属しています
  • Parameter 1 - IPrintAsyncNotifyChannel インターフェイス ポインター。
  • Parameter 2 - 使用されていません。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintAPI
  • 停止 ID: ASYNCCHANNEL_CLIENT_CONTRACT_VIOLATION
  • ストップコード: 0000A026
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

IPrintAsyncNotifyChannel の終了中に検出された競合

考えられる原因

*** この停止を Microsoft に報告してください。 *** この停止は、通知が CloseChannel への呼び出しを _during_ に到着したことを示します。 この状態が発生した場合、コンシューマーがチャネルを正しく解放できない可能性があります。 この停止は頻繁に発生しないようにしてください。 これは、双方向チャネルが作成される前に常にリスナーが使用可能であることを確認すること、および、既に通知を送信しているがコールバックを受信していないチャネルを閉じない限りリスナーが開始できないようにすることで、防ぐことができます。

アプリケーション検証ツールによって表示される情報
  • Format: - In 関数 %s では、別のスレッドで既に呼び出しが進行中です。 詳細については、ヘルプを参照してください。
  • Parameter 1 - IPrintAsyncNotifyChannel インターフェイス ポインター。
  • Parameter 2 - 呼び出されるメンバー関数のスレッド ID。
  • Parameter 3 - コールバック イベント関数のスレッド ID。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintAPI
  • Stop ID: ASYNCCHANNEL_CLOSECHANNEL_RACE_DETECTED
  • ストップコード: 0000A027
  • 重要度: 警告
  • 1 回限りエラー: いいえ
  • エラー レポート: なし
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

GUI スレッドでネットワーク呼び出しを行う印刷 API の呼び出し。 これにより、時間 UI がハングするバインドが解除される可能性があります。

考えられる原因

GUI スレッドでネットワーク呼び出しを行う 印刷 API が呼び出されました。 これにより、時間 UI がハングするバインドが解除される可能性があります。 通常、このような API は、メッセージ ポンプなしでワーカー スレッドで呼び出す必要があります。

アプリケーション検証ツールによって表示される情報
  • Format: - %s は GUI スレッドであるスレッドで呼び出されました。 これにより、時間 UI がハングするバインドが解除される可能性があります。
  • Parameter 1 - 最上位の表示ウィンドウの HWND。
  • Parameter 2 - 現在のスレッド ID。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintAPI
  • Stop ID: CALLING_NETBOUND_PRINT_API_ON_GUI_THREAD
  • ストップコード: 0000A028
  • 重要度: 警告
  • 1 回限りエラー: いいえ
  • エラー レポート: なし
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

ユーザー インターフェイスをポップアップ表示する API の呼び出しは Session0 です。

考えられる原因

ユーザー インターフェイスが Session0 としてポップアップ表示される API に対して呼び出しが行われました。

アプリケーション検証ツールによって表示される情報
  • 形式: -  Session0 API での無効な呼び出し: %s
  • Parameter 1 - 使用されていません。
  • Parameter 2 - 使用されていません。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintAPI
  • Stop ID: UNSUPPORTED_API_CALLED_IN_SESSION_ZERO
  • ストップコード: 0000A029
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

初回のアクセス違反が検出されました

考えられる原因

この停止は、プリンター ドライバーが非実行可能、解放またはコミット解除、または予約されているがコミットされていないためにアクセスできない仮想メモリ アドレスにアクセスしようとしたときに生成されます。 この停止をデバッグするには: $ u パラメータ 2 - 疑わしいコードをアンアセンブルします。 $ .exr パラメータ 3 - 例外情報を表示します。 $ .cxr パラメータ4 - 例外コンテキスト情報を表示します。 $ kb - 例外が発生した時刻のスタック トレースを表示します。

アプリケーション検証ツールによって表示される情報
  • Parameter 1 - アクセス中のアドレス。
  • Parameter 2 - 無効なアクセスを実行しているコード。
  • Parameter 3 - 例外レコード。 .exr を使用して表示します。
  • Parameter 4 - コンテキスト レコード。 .cxr を使用して表示します。

追加情報
  • テスト レイヤー: PrintDriver
  • Stop ID: FIRST_CHANCE_ACCESS_VIOLATION
  • ストップコード: 0000D000
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

スレッドが整数値を 0 の整数除数で除算しようとしました

考えられる原因

この停止は、プリンター ドライバーが整数値を 0 の整数除数で除算しようとしたときに生成されます。 この停止をデバッグするには: $ u パラメータ1 - 疑わしいコードをアンアセンブルします。 $ .exr パラメータ2 - 例外情報を表示します。 $ .cxr パラメータ3 - 例外コンテキスト情報を表示します。 $ kb - 例外が発生した時刻のスタック トレースを表示します。

アプリケーション検証ツールによって表示される情報
  • Parameter 1 - ゼロ除算演算を実行するコード。
  • Parameter 2 - 例外レコード。 .exr を使用して表示します。
  • Parameter 3 - コンテキスト レコード。 .cxr を使用して表示します。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • 停止 ID: INT_DIVIDE_BY_ZERO
  • ストップコード: 0000D001
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

スレッドが、アラインメントを提供しないハードウェア上の不適切なデータの読み取りまたは書き込みを試みました

考えられる原因

この停止は、ドライバーが、配置を提供しないハードウェア上の不適切なデータを読み取りまたは書き込もうとしたときに生成されます。 たとえば、16 ビット値は 2 バイト境界に配置する必要があります。4 バイト境界の 32 ビット値など。 この停止をデバッグするには: $ u パラメータ1 - 原因コードをアンアセンブルします。 $ .exr パラメータ2 - 例外情報を表示します。 $ .cxr パラメータ3 - 例外コンテキスト情報を表示します。 $ kb - 例外が発生した時刻のスタック トレースを表示します。

アプリケーション検証ツールによって表示される情報
  • パラメーター 1 - データ型の位置がずれているコード。
  • Parameter 2 - 例外レコード。 .exr を使用して表示します。
  • Parameter 3 - コンテキスト レコード。 .cxr を使用して表示します。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • 停止 ID: DATATYPE_MISALIGNMENT
  • ストップコード: 0000D002
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

現在のスタック トレースのハンドル例外が無効です

考えられる原因

この停止は、スタックの上部にある関数が無効なハンドルをシステム ルーチンに渡すと生成されます。 通常、kb コマンドは、呼び出し履歴で渡されたハンドルの値を表示します。 ハンドルは、呼び出しのパラメーターの 1 つになります。 多くの場合、これは最初のパラメーターです。 null ハンドル値は、無効なハンドル値の 1 つの例です。 ハンドル値が有効と思われる場合は、!htrace デバッガー拡張機能を使用して、ハンドル値を含む操作の履歴を表示します。 ハンドルが閉じられた後に使用されると、有効と思われるハンドル値が無効になる場合があります。

アプリケーション検証ツールによって表示される情報
  • Parameter 1 - 例外コード
  • Parameter 2 - 例外レコード。 .exr を使用して表示します。
  • Parameter 3 - コンテキスト レコード。 .cxr を使用して表示します。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • 停止 ID: INVALID_HANDLE
  • ストップコード: 0000D003
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

コア ドライバーが閉じたプリンター ハンドルをプラグインに送信している

考えられる原因

コア ドライバーは、既に閉じられているプリンター ハンドルをプラグインに送信しています。 このエラーは、Microsoft のコア プリンター ドライバー モジュールで問題になる可能性があるため、Microsoft に報告してください。 閉じた プリンタ ハンドルを使用しようとしたルーチンを識別するには、デバッガーで 'k' コマンドを使用して、現在のスタック トレースをダンプします。 ハンドルを閉じたルーチンのスタック・トレースをダンプするには、停止の 2 番目のパラメーターと共に dps コマンドを使用します。

アプリケーション検証ツールによって表示される情報
  • パラメーター 1 - プラグインに送信されるプリンター ハンドル。
  • Parameter 2 - ルーチン終了のスタック トレース。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • Stop ID: PRINTER_HANDLE_ALREADY_CLOSED
  • ストップコード: 0000D004
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

コア ドライバーが不明なプリンター ハンドルをプラグインに送信しています

考えられる原因

コア ドライバーは、Windows Vista、AddPrinterA、または AddPrinterW で OpenPrinterA、OpenPrinterW、OpenPrinter2W を呼び出して開かなかったプリンター ハンドルをプラグインに送信しています。 このエラーは、Microsoft のコア プリンター ドライバー モジュールで問題になる可能性があるため、Microsoft に報告してください。

アプリケーション検証ツールによって表示される情報
  • パラメーター 1 - プラグインに送信されるプリンター ハンドル。
  • Parameter 2 - 使用されていません。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • 停止 ID: INVALID_PRINTER_HANDLE
  • ストップコード: 0000D005
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

プラグインがプリンター ハンドルを閉じた

考えられる原因

プラグインは、コア ドライバーからの入力として受け取ったプリンター ハンドルを閉じました。 これは、コア ドライバーからプラグインへの呼び出しの WDK 規則に違反します。 ハンドルを閉じたルーチンのスタック トレースをダンプするには、停止の 2 番目のパラメーターと共に dps を使用します。

アプリケーション検証ツールによって表示される情報
  • 形式: - この検証ツールの停止は、'%lS' でプラグイン モジュールの '%lS' メソッドによって発生しました
  • パラメーター 1 - 閉じられたプリンター ハンドル。
  • Parameter 2 - 終了のスタック トレース。 スタック トレースが NULL でない場合は、dps を使用してダンプします。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • Stop ID: PLUGIN_CLOSED_PRINTER_HANDLE
  • ストップコード: 0000D006
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

サポートされている印刷スキーマのメジャー バージョンの数が無効です

考えられる原因

PrintTicket プロバイダー プラグインは、サポートされている印刷スキーマのメジャー バージョンの数が無効です。 プラグインの IPrintOemPrintTicketProvider::GetSupportedVersions メソッドは、少なくとも 1 つのサポートされているメジャー バージョンを返す必要があります。 Windows Vista では印刷スキーマのメジャー バージョンが 1 つしかサポートされていないため、プラグインは 1 の値を返す必要があります。

アプリケーション検証ツールによって表示される情報
  • 形式: - この検証ツールの停止は、'%lS' でプラグイン モジュールの '%lS' メソッドによって発生しました
  • パラメーター 1 - 返されたサポートされているスキーマ バージョンの数。
  • Parameter 2 - 使用されていません。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • Stop ID: PRINTTICKET_PROVIDER_INVALID_NUMBER_OF_SUPPORTED_SCHEMA_VERSIONS
  • ストップコード: 0000D007
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

サポートされている印刷スキーマのバージョンがありません

考えられる原因

PrintTicket プロバイダー プラグインは、サポートされている印刷スキーマ バージョンが少なくとも 1 つ返されたが、返されなかったことを示しました。 プラグインで IPrintOemPrintTicketProvider::GetSupportedVersions メソッドを呼び出すと、2 つの out ポインターが引数として受け入れられます。 ppVersions 引数は、印刷スキーマのサポートされているメジャー バージョンを表す整数の配列を指します。 cVersions 引数は、返される整数の配列内の要素の数を指します。 この検証ツールの停止は、プラグインが cVersions で有効な数値を返すが、ppVersions 配列内の何も返されない場合に発生します。

アプリケーション検証ツールによって表示される情報
  • 形式: - この検証ツールの停止は、'%lS' でプラグイン モジュールの '%lS' メソッドによって発生しました
  • パラメーター 1 - 返されたサポートされているプリント スキーマ バージョンの数。
  • Parameter 2 - 使用されていません。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • 停止 ID: PRINTTICKET_PROVIDER_MISSING_SUPPORTED_SCHEMA_VERSION
  • ストップコード: 0000D008
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

印刷スキーマのメジャー バージョンが無効です

考えられる原因

PrintTicket プロバイダー プラグインから、無効な印刷スキーマメジャー バージョンが返されました。 Windows Vista でサポートされている印刷スキーマのメジャー バージョンは 1 のみであるため、プラグインの IPrintOemPrintTicketProvider::GetSupportedVersions メソッドの呼び出しは 1 の値を返す必要があります。

アプリケーション検証ツールによって表示される情報
  • 形式: - この検証ツールの停止は、'%lS' でプラグイン モジュールの '%lS' メソッドによって発生しました
  • パラメーター 1 - 返された印刷スキーマのバージョン。
  • Parameter 2 - 使用されていません。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • Stop ID: PRINTTICKET_PROVIDER_INVALID_SUPPORTED_SCHEMA_VERSION
  • ストップコード: 0000D009
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

OEMPTOPTS 値が無効です

考えられる原因

PrintTicket プロバイダー プラグインから無効な OEMPTOPTS 値が返されました。 プラグインの IPrintOemPrintTicketProvider::BindPrinter メソッドの引数の 1 つは、OEMPTOPTS 列挙型へのポインターです。 プラグインは、この引数の値を Windows Vista でサポートされている値のいずれかに設定することが想定されています。 Windows Vista でサポートされる値は、OEMPT_DEFAULTとOEMPT_NOSNAPSHOTです。 この検証ツールの停止は、プラグインがこれらのサポートされている値の 1 つではない値を返したときに発生します。

アプリケーション検証ツールによって表示される情報
  • 形式: - この検証ツールの停止は、'%lS' でプラグイン モジュールの '%lS' メソッドによって発生しました
  • Parameter 1 - 返された OEMPTOPTS 値。
  • Parameter 2 - 使用されていません。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • 停止 ID: PRINTTICKET_PROVIDER_INVALID_OEMPTOPTS
  • ストップコード: 0000D00A
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

印刷スキーマのプライベート名前空間がありません

考えられる原因

PrintTicket プロバイダー プラグインは、少なくとも 1 つの Print Schema プライベート名前空間を返しているが、何も返さないことを示しました。 プラグインの IPrintOemPrintTicketProvider::BindPrinter メソッドの呼び出しには、プラグインがサポートする印刷スキーマのプライベート名前空間に関する情報を返すことができる 2 つの out ポインター引数が含まれています。 ppNamespaces 引数は、サポートされている印刷スキーマのプライベート名前空間を表す文字列の配列を指します。 cNamespaces 引数は、返される文字列の配列内の要素の数を指します。 この検証ツールの停止は、プラグインが cNamespaces で有効な数値を返すが、ppNamespaces 配列内の何も返さない場合に発生します。

アプリケーション検証ツールによって表示される情報
  • 形式: - この検証ツールの停止は、'%lS' でプラグイン モジュールの '%lS' メソッドによって発生しました
  • パラメーター 1 - 予期される名前空間の数。
  • Parameter 2 - 使用されていません。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • 停止 ID: PRINTTICKET_PROVIDER_MISSING_NAMESPACE
  • ストップコード: 0000D00B
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

プラグインで正しくない参照カウントが検出されました

考えられる原因

WDK は、プラグインが IUnknown::AddRef および IUnknown::Release メソッドの実装で正確な参照カウントを実行する必要があることを示しています。 プラグインのインターフェイス オブジェクトの有効期間は、正確な参照カウントに依存します。 参照カウントが不正確な場合は、リソースリークが発生したり、プラグインの早期アンロードが発生したりしてドライバーが失敗する可能性があります。 この検証ツールの停止は、プラグインで正しくない参照カウントが検出されたときに発生します。

アプリケーション検証ツールによって表示される情報
  • 形式: - この検証ツールの停止は、%lS のプラグイン モジュールによって発生しました
  • パラメーター 1 - 予期される参照カウント。
  • パラメーター 2 - 実際の参照カウントメインプラグインに含まれます。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • 停止 ID: PLUGIN_MISMATCHED_REFCOUNT
  • ストップコード: 0000D00C
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

OEMNextBand で pptl が NULL である

考えられる原因

コア ドライバーによってプラグインの OEMNextBand フックに渡された pptl は NULL でした。 コア ドライバーは、常に有効な pptl をプラグインの OEMNextBand フックに送信する必要があります。 このエラーは、Microsoft のコア プリンター ドライバー モジュールで問題になる可能性があるため、Microsoft に報告してください。

アプリケーション検証ツールによって表示される情報
  • Parameter 1 - 使用されていません。
  • Parameter 2 - 使用されていません。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • Stop ID: PPTL_IS_NULL_IN_OEMNEXTBAND
  • ストップコード: 0000D00D
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

プラグインは、EnablePDEV メソッドからS_OKを返した後に NULL PDEV を返しました

考えられる原因

プラグインによって返されたプライベート PDEV は NULL でしたが、EnablePDEV メソッドからの戻り値は成功を示S_OK。 WDK は、プラグインの EnablePDEV メソッドがS_OKの状態を返す場合、プライベート PDEV 構造体のインスタンスを割り当て、初期化し、メソッドの pDevOem パラメーターでこの構造体のアドレスを返す必要があることを示します。 この検証ツールの停止は、EnablePDEV メソッドの実装からS_OKの状態を返すときに、プラグインが有効なプライベート PDEV 構造体を返さない場合に発生します。

アプリケーション検証ツールによって表示される情報
  • 形式: - この検証ツールの停止は、%lS のプラグイン モジュールによって発生しました
  • Parameter 1 - 使用されていません。
  • Parameter 2 - 使用されていません。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • 停止 ID: PLUGIN_PRIVATE_PDEV_IS_NULL
  • ストップコード: 0000D00E
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

プラグインは、許可されている最小サイズより小さいプライベート DEVMODE を返しました

考えられる原因

プラグインによって返されるプライベート DEVMODE は、少なくとも OEM_DMEXTRAHEADER のサイズである必要があります。 プラグインの DevMode メソッドは、OEMDM_SIZE モードで呼び出されたときにプライベート DEVMODE メンバーを格納するために必要なサイズを返す必要があります。 この値は、メソッドが初めて呼び出されるときに設定されます。 プラグインの DevMode メソッドは、OEMDMPARAM 構造体の cbBufSize メンバーの値を必要なバイト数に設定する必要があり、その値はOEM_DMEXTRAHEADERのサイズ以上である必要があります。 この検証ツールの停止は、OEMDMPARAM 構造体の cbBufSize メンバーで返されるサイズがOEM_DMEXTRAHEADERのサイズよりも小さい場合に発生します。

アプリケーション検証ツールによって表示される情報
  • 形式: - この検証ツールの停止は、%lS のプラグイン モジュールによって発生しました
  • Parameter 1 - 現在の DevMode コールバックのモード。
  • Parameter 2 - プラグインのプライベート DEVMODE のサイズ。
  • パラメーター 3 - OEM_DMEXTRAHEADERのサイズ。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • 停止 ID: INVALID_PLUGIN_PRIVATE_DEVMODE_SIZE
  • ストップコード: 0000D00F
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

プラグインは、DevMode(OEMDM_SIZE) 呼び出しによって返されるサイズとは異なるサイズのプライベート DEVMODE を返しました

考えられる原因

プラグインは、OEMDM_SIZE モードの DevMode 呼び出しによって返されるのと同じサイズのプライベート DEVMODE を返す必要があります。 プラグインの DevMode メソッドは、DevModeメソッドが OEMDM_SIZE モードで呼び出されたときにプライベート DEVMODE メンバーを格納するために必要なサイズを返す必要があります。 この値は定数であり、メソッドが初めて呼び出されるときに設定されます。 プラグインの DevMode メソッドに対して後続の呼び出しが行われるときに変更することはできません。 この検証ツールの停止は、プラグインの DevMode メソッドが最初に呼び出されたときに返された値とは異なる値を返す場合に発生します。

アプリケーション検証ツールによって表示される情報
  • 形式: - この検証ツールの停止は、%lS のプラグイン モジュールによって発生しました
  • Parameter 1 - 現在の Devmode コールバックのモード。
  • Parameter 2 - pOEMDMOut で指定されている出力プラグイン プライベート DEVMODE のサイズ。
  • Parameter 3 - pOEMDMParam で指定されている出力プラグイン プライベート DEVMODE のサイズ。
  • Parameter 4 - OEMDM_SIZE 呼び出し中に指定されたプラグイン・プライベート DEVMODE のサイズ。

追加情報
  • テスト レイヤー: PrintDriver
  • 停止 ID: PLUGIN_PRIVATE_DEVMODE_MISMATCHED_SIZE
  • ストップコード: 0000D010
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

プラグインが GetInfo(OEMGI_GETSIGNATURE) 呼び出しから無効な署名を返しました

考えられる原因

プラグインは、getInfo 呼び出し中に OEMGI_GETSIGNATURE モードで呼び出されたときに、有効な 0 以外のシグネチャを返す必要があります。 プラグインの GetInfo メソッドは、一意の 4 バイト識別シグネチャを返す必要があります。 この検証ツールの停止は、プラグインの GetInfo(OEMGI_GETSIGNATURE) メソッドが 0 個のシグネチャを返したときに発生します。

アプリケーション検証ツールによって表示される情報
  • 形式: - この検証ツールの停止は、%lS のプラグイン モジュールによって発生しました
  • Parameter 1 - 使用されていません。
  • Parameter 2 - 使用されていません。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • 停止 ID: INVALID_PLUGIN_SIGNATURE
  • ストップコード: 0000D011
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

プラグインは、GetInfo 呼び出しから返されたのとは異なる署名をプライベート DEVMODE で返しました

考えられる原因

プラグインは、プラグインの GetInfo メソッドのOEMGI_GETSIGNATURE呼び出しで返されたのと同じ一意の 4 バイト識別シグネチャを含むプライベート DEVMODE を返す必要があります。 この検証ツールの停止は、これら 2 つの署名が同一でない場合に発生します。

アプリケーション検証ツールによって表示される情報
  • 形式: - この検証ツールの停止は、%lS のプラグイン モジュールによって発生しました
  • Parameter 1 - 現在の DevMode メソッド呼び出しのモード。
  • Parameter 2 - 出力プラグインのプライベート DEVMODE で指定されたシグニチャー。
  • Parameter 3 - GetInfo 呼び出し中に指定されたシグニチャー。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • 停止 ID: PLUGIN_PRIVATE_DEVMODE_MISMATCHED_SIGNATURE
  • ストップコード: 0000D012
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

プラグインの EnableDriver メソッドに失敗しました。

考えられる原因

プラグインの EnableDriver メソッドは、例外的な状況では失敗する可能性がありますが、失敗することは想定されていません。

アプリケーション検証ツールによって表示される情報
  • 形式: - この検証ツールの停止は、%lS のプラグイン モジュールによって発生しました
  • Parameter 1 - EnableDriver によって返されるHRESULT。
  • パラメーター 2 - プラグインによって設定されたエラー コード。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • 停止 ID: ENABLEDRIVER_FAILED
  • ストップコード: 0000D013
  • 重要度: 警告
  • 1 回限りエラー: いいえ
  • エラー レポート: なし
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

プラグインの EnableDriver メソッドが、最後のエラー コードを設定せずに失敗しました

考えられる原因

プラグインの EnableDriver メソッドは、例外的な状況では失敗する可能性がありますが 失敗することは想定されていません。 失敗した場合は、SetLastError を呼び出して最後のエラー コードを設定する必要があります。 この検証ツールの停止は、プラグインの EnableDriver メソッドが最後のエラーを設定せずに失敗した場合に発生します。

アプリケーション検証ツールによって表示される情報
  • 形式: - この検証ツールの停止は、%lS のプラグイン モジュールによって発生しました
  • Parameter 1 - EnableDriver によって返されるHRESULT。
  • Parameter 2 - 使用されていません。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • 停止 ID: ENABLEDRIVER_FAILED_WITHOUT_ERROR_CODE
  • ストップコード: 0000D014
  • 重要度: 警告
  • 1 回限りエラー: いいえ
  • エラー レポート: なし
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

プラグインが DriverDMS からS_OKを返したが、SetBandSize というコア ドライバー

考えられる原因

プラグインが DriverDMS メソッドを実装し、DriverDMS メソッドの実装がS_OKを返す場合、コア ドライバーは SetBandSize を呼び出す必要はありません。 このエラーは、Microsoft のコア プリンター ドライバー モジュールで問題になる可能性があるため、Microsoft に報告してください。

アプリケーション検証ツールによって表示される情報
  • Parameter 1 - 使用されていません。
  • Parameter 2 - 使用されていません。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • Stop ID: INVALID_SETBANDSIZE_CALL
  • ストップコード: 0000D015
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

コア ドライバーは、無効なパラメーターを使用して WritePrinter 初期化呼び出しを行いました

考えられる原因

WritePrinter の初期化呼び出し中は、pdevobj 引数と pBuf 引数を NULL にし、cbBuf をゼロにする必要があります。 コア ドライバーがプラグインの WritePrinter メソッドの初期化呼び出しを行った場合、これらの条件の 1 つが当てはまらなかった。 このエラーは、Microsoft のコア プリンター ドライバー モジュールで問題になる可能性があるため、Microsoft に報告してください。

アプリケーション検証ツールによって表示される情報
  • Parameter 1 - 使用されていません。
  • Parameter 2 - 使用されていません。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • 停止 ID: INVALID_WRITEPRINTER_INITIALIZATION_CALL
  • ストップコード: 0000D016
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

プラグインの WritePrinter メソッドに失敗しました。

考えられる原因

この検証ツールの停止は、プラグインの WritePrinter メソッドが失敗したときに発生します。 これにより、印刷ジョブが中止されます。

アプリケーション検証ツールによって表示される情報
  • 形式: - この検証ツールの停止は、%lS のプラグイン モジュールによって発生しました
  • Parameter 1 - プラグインの WritePrinter メソッドによって返されるHRESULT。
  • Parameter 2 - 使用されていません。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • 停止 ID: WRITEPRINTER_FAILED
  • ストップコード: 0000D017
  • 重要度: 警告
  • 1 回限りエラー: いいえ
  • エラー レポート: なし
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

コア ドライバーが無効な PrintTicket をプラグインに送信しました

考えられる原因

この検証ツールの停止は、コア ドライバーからプラグインに送信された PrintTicket ドキュメントが PrintSchema に準拠していない場合に発生します。 コア ドライバーはドライバーの GPD/PPD を解析してプラグインに送信される PrintTicket を構築するため、通常、この停止はドライバーの GPD/PPD のバグを示します。

アプリケーション検証ツールによって表示される情報
  • 形式: - この検証ツールの停止は、コア ドライバーがプラグインの %lS メソッドを呼び出したときに発生しました
  • パラメーター 1 - PTConform によって返されるエラー メッセージ。 このパラメーターが NULL でない場合は、du を使用してメッセージをダンプします。
  • Parameter 2 - PrintTicket XML テキスト。 このパラメーターが NULL でない場合は、du を使用して XML をダンプします。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • 停止 ID: INVALID_COREDRIVER_PRINTTICKET
  • ストップコード: 0000D018
  • 重要度: 警告
  • 1 回限りエラー: いいえ
  • エラー レポート: なし
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

プラグインがコア ドライバーに無効な PrintTicket を返しました

考えられる原因

この検証ツールの停止は、プラグインからコア ドライバーに返された PrintTicket ドキュメントが PrintSchema に準拠していない場合に発生します。

アプリケーション検証ツールによって表示される情報
  • 形式: - この検証ツールの停止は、'%lS' でプラグイン モジュールの '%lS' メソッドによって発生しました
  • パラメーター 1 - PTConform によって返されるエラー メッセージ。 このパラメーターが NULL でない場合は、du を使用してメッセージをダンプします。
  • Parameter 2 - PrintTicket XML テキスト。 このパラメーターが NULL でない場合は、du を使用して XML をダンプします。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • 停止 ID: INVALID_PLUGIN_PRINTTICKET
  • ストップコード: 0000D019
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

コア ドライバーが無効な PrintCapabilities ドキュメントをプラグインに送信しました

考えられる原因

この検証ツールの停止は、コア ドライバーからプラグインに送信された PrintCapabilities ドキュメントが PrintSchema に準拠していない場合に発生します。 このエラーは、Microsoft のコア プリンター ドライバー モジュールで問題になる可能性があるため、Microsoft に報告してください。

アプリケーション検証ツールによって表示される情報
  • 形式: - この検証ツールの停止は、コア ドライバーがプラグインの %lS メソッドを呼び出したときに発生しました
  • パラメーター 1 - PTConform によって返されるエラー メッセージ。 このパラメーターが NULL でない場合は、du を使用してメッセージをダンプします。
  • Parameter 2 - PrintCapabilities XML テキスト。 このパラメーターが NULL でない場合は、du を使用して XML をダンプします。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • 停止 ID: INVALID_COREDRIVER_PRINTCAPABILITIES
  • ストップコード: 0000D01A
  • 重要度: 警告
  • 1 回限りエラー: いいえ
  • エラー レポート: なし
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

プラグインがコア ドライバーに無効な PrintCapabilities ドキュメントを返しました

考えられる原因

この検証ツールの停止は、プラグインからコア ドライバーに返された PrintCapabilities ドキュメントが PrintSchema に準拠していない場合に発生します。

アプリケーション検証ツールによって表示される情報
  • 形式: - この検証ツールの停止は、'%lS' でプラグイン モジュールの '%lS' メソッドによって発生しました
  • パラメーター 1 - PTConform によって返されるエラー メッセージ。 このパラメーターが NULL でない場合は、du を使用してメッセージをダンプします。
  • Parameter 2 - PrintCapabilities XML テキスト。 このパラメーターが NULL でない場合は、du を使用して XML をダンプします。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • 停止 ID: INVALID_PLUGIN_PRINTCAPABILITIES
  • ストップコード: 0000D01B
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

PTConform に予期しないエラーが発生しました

考えられる原因

この検証ツールの停止は、PrintTicket/PrintCapabilities が PrintSchema に準拠していることを確認しようとしたときに、PrintVerifier で予期しないエラーが発生したときに発生します。 このエラーは、PrintVerifier で問題になる可能性があるため、Microsoft に報告してください。

アプリケーション検証ツールによって表示される情報
  • Parameter 1 - 使用されていません。
  • Parameter 2 - 使用されていません。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • 停止 ID: PTCONFORM_UNEXPECTED_ERROR
  • ストップコード: 0000D01C
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

出力フィルターは、無効な引数値を持つパイプライン マネージャー インターフェイスを呼び出します

考えられる原因

この検証ツールの停止は、出力フィルターが正しくない引数値を持つパイプライン メソッドを呼び出したときに発生します。 スタック トレースを使用して、印刷フィルター DLL の名前を検索します。

アプリケーション検証ツールによって表示される情報
  • Format: -  %s メソッド: %s 引数の値が無効です。
  • Parameter 1 - プリント フィルター GUID。 このパラメーターが NULL でない場合は、dd を使用してダンプします。
  • Parameter 2 - 引数の値。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • 停止 ID: FILTER_INVALID_ARGUMENT
  • ストップコード: 0000D01D
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

IPrintPipelinePropertyBag への印刷フィルター呼び出しで共通プロパティが上書きまたは削除される

考えられる原因

この検証ツールの停止は、印刷フィルターが変更または印刷パイプラインのプロパティ バッグから共通プロパティを削除するときに発生します。

アプリケーション検証ツールによって表示される情報
  • Format: -  %s メソッド: 共通プロパティ %s の上書き
  • Parameter 1 - プリント フィルター GUID。 このパラメーターが NULL でない場合は、dd を使用してダンプします。
  • Parameter 2 - プロパティ値 (バリアント)。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • 停止 ID: FILTER_PROPERTY_BAG_INVALID_CHANGE
  • ストップコード: 0000D01E
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

出力フィルター呼び出しパイプライン マネージャー インターフェイスの順序が変更されました

考えられる原因

この検証ツールの停止は、印刷フィルターが予期しないシーケンスでパイプライン マネージャー インターフェイス メソッドを呼び出したときに発生します。

アプリケーション検証ツールによって表示される情報
  • 形式: -  %s インターフェイスの呼び出し順序が正しくありません: %s
  • Parameter 1 - プリント フィルター GUID。 このパラメーターが NULL でない場合は、dd を使用してダンプします。
  • Parameter 2 - 使用されていません。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • 停止 ID: FILTER_INVALID_CALL_ORDER
  • ストップコード: 0000D01F
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

パイプライン マネージャー インターフェイスに対する AddRef/Release 呼び出しの印刷フィルターが一致していません

考えられる原因

この検証ツールの停止は、パイプライン マネージャー インターフェイスの参照カウントが印刷フィルターによって誤って管理された場合に発生します。

アプリケーション検証ツールによって表示される情報
  • Format: -  インターフェイス %s ref カウントが %d、 expected %s です。
  • Parameter 1 - プリント フィルター GUID。 このパラメーターが NULL でない場合は、dd を使用してダンプします。
  • Parameter 2 - 使用されていません。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • 停止 ID: FILTER_REFCOUNT_MISMATCH
  • ストップコード: 0000D020
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

パイプライン マネージャー インターフェイス メソッドへのフィルター呼び出しを出力する必要はありません

考えられる原因

この検証ツールの停止は、印刷フィルターがパイプライン インターフェイス メソッドに対して不要または予期しない呼び出しを行ったときに発生します。 たとえば、印刷フィルターが IPrintWriteStream::Close を 2 回目に呼び出した場合です。

アプリケーション検証ツールによって表示される情報
  • 形式: -  インターフェイス メソッド %s : %s
  • Parameter 1 - プリント フィルター GUID。 このパラメーターが NULL でない場合は、dd を使用してダンプします。
  • Parameter 2 - 使用されていません。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • 停止 ID: FILTER_UNEXPECTED_CALL
  • ストップコード: 0000D021
  • 重要度: 警告
  • 1 回限りエラー: いいえ
  • エラー レポート: なし
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

パイプライン マネージャーは、印刷フィルター インターフェイス メソッドを順序どおりに呼び出しません

考えられる原因

この検証ツールの停止は、パイプライン マネージャーが印刷フィルター インターフェイスのメソッドを誤って呼び出した場合に発生します。 このエラーは、印刷フィルター パイプライン サービスで問題になる可能性があるため、Microsoft に報告してください。

アプリケーション検証ツールによって表示される情報
  • 形式: -  印刷フィルターの呼び出し順序が無効です: %s
  • Parameter 1 - プリント フィルター GUID。 このパラメーターが NULL でない場合は、dd を使用してダンプします。
  • Parameter 2 - 使用されていません。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • 停止 ID: PIPELINE_INVALID_CALL_ORDER
  • ストップコード: 0000D022
  • 重要度: 警告
  • 1 回限りエラー: いいえ
  • エラー レポート: なし
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

パイプライン マネージャーが無効な引数値で印刷フィルター インターフェイス メソッドを呼び出します

考えられる原因

この検証ツールの停止は、パイプライン マネージャーが無効な引数値を持つ印刷フィルター インターフェイスを呼び出すときに発生します。 このエラーは、印刷フィルター パイプライン サービスで問題になる可能性があるため、Microsoft に報告してください。

アプリケーション検証ツールによって表示される情報
  • Format: -  メソッド %s: %s
  • Parameter 1 - プリント フィルター GUID。 このパラメーターが NULL でない場合は、dd を使用してダンプします。
  • Parameter 2 - 引数の値。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • 停止 ID: PIPELINE_INVALID_INPUT_ARGUMENT
  • ストップコード: 0000D023
  • 重要度: 警告
  • 1 回限りエラー: いいえ
  • エラー レポート: なし
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

パイプライン マネージャーが無効な値を返してフィルターを出力する

考えられる原因

この検証ツールの停止は、パイプライン マネージャーが印刷フィルターに無効な値を返したときに発生します。 このエラーは、印刷フィルター パイプライン サービスで問題になる可能性があるため、Microsoft に報告してください。

アプリケーション検証ツールによって表示される情報
  • Format: -  メソッド %s: %s
  • Parameter 1 - プリント フィルター GUID。 このパラメーターが NULL でない場合は、dd を使用してダンプします。
  • Parameter 2 - 値。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • Stop ID: PIPELINE_INVALID_OUTPUT_ARGUMENT
  • ストップコード: 0000D024
  • 重要度: 警告
  • 1 回限りエラー: いいえ
  • エラー レポート: なし
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

プリンター ドライバーの呼び出しによって、セキュリティ コンテキストが変更されました。

考えられる原因

通常、この停止は、印刷ドライバーが RevertToSelf() または RevertToPrinterSelf() を呼び出したが、ImpersonatePrinterClient() を呼び出してユーザーを偽装するようにセキュリティ コンテキストを変更しなかった場合に発生します。 これは許可されず、印刷スプーラーの動作は、この処理が行われると未定義になります。 これにより、セキュリティの脆弱性が発生し、リモートで認証された特権の昇格の種類の攻撃が可能になる場合もあります。

アプリケーション検証ツールによって表示される情報
  • 形式: - この検証ツールの停止は、'%lS' でプラグイン モジュールの '%lS' メソッドによって発生しました
  • Parameter 1 - ドライバー エントリでのアカウント。 NULL でない場合は、'du address' を入力してダンプします。
  • Parameter 2 - ドライバー終了時のアカウント名。 NULL でない場合は、'du address' を入力してダンプします。
  • パラメーター 3 - ドライバー エントリのセキュリティ トークン
  • パラメーター 4 - ドライバー終了時のセキュリティ トークン

追加情報
  • テスト レイヤー: PrintDriver
  • Stop ID: SECURITY_CONTEXT_CHANGED_BY_A_PRINT_DRIVER_CALL
  • ストップコード: 0000D025
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

印刷フィルターが無効な PrintTicket をパイプライン マネージャーに送信しました

考えられる原因

この検証ツールの停止は、IPrintTicketPart パーツが SetPrintTicket メソッドに送信されたが、その内容が PrintSchema に準拠していない場合に発生します。

アプリケーション検証ツールによって表示される情報
  • Format: - この検証ツールの停止は %lS メソッドに含まれています。 GUID を使用して印刷フィルターを識別します。
  • Parameter 1 - プリント フィルター GUID。 このパラメーターが NULL でない場合は、dd を使用してダンプします。
  • パラメーター 2 - PTConform によって返されるエラー メッセージ。 このパラメーターが NULL でない場合は、du を使用してメッセージをダンプします。
  • Parameter 3 - PrintTicket XML テキスト。 このパラメーターが NULL でない場合は、du を使用して XML をダンプします。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • 停止 ID: INVALID_FILTER_PRINTTICKET
  • ストップコード: 0000D026
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

パイプライン マネージャーから印刷フィルターが無効な PrintTicket を受信しました

考えられる原因

この検証ツールの停止は、IPrintTicketPart パーツが GetPrintTicket メソッドを介して Print フィルターから受信されたが、その内容が PrintSchema に準拠していない場合に発生します。

アプリケーション検証ツールによって表示される情報
  • Format: - この検証ツールの停止は %lS メソッドに含まれています。 GUID を使用して印刷フィルターを識別します。
  • Parameter 1 - プリント フィルター GUID。 このパラメーターが NULL でない場合は、dd を使用してダンプします。
  • パラメーター 2 - PTConform によって返されるエラー メッセージ。 このパラメーターが NULL でない場合は、du を使用してメッセージをダンプします。
  • Parameter 3 - PrintTicket XML テキスト。 このパラメーターが NULL でない場合は、du を使用して XML をダンプします。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • 停止 ID: INVALID_PIPELINE_PRINTTICKET
  • ストップコード: 0000D027
  • 重要度: 警告
  • 1 回限りエラー: いいえ
  • エラー レポート: なし
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

アクティブな COM コールバックを使用した印刷ドライバー DLL のアンロード。

考えられる原因

ターゲット モジュールのアンロード中に COM インターフェイスの正の reference count が検出されました。 モジュールでの DllCanUnloadNow エクスポートの不適切な実装または正しくない参照カウントが原因である可能性があります。

アプリケーション検証ツールによって表示される情報
  • 形式: -  この検証ツールの停止は、システムが %lS ポインターを保持している間に %lS モジュールのアンロードが原因で発生しました。
  • Parameter 1 - COM インターフェイス アドレス。
  • Parameter 2 - コールバックが指定されたスタック トレース。 スタック トレースが NULL でない場合は、dps を使用してダンプします。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • 停止 ID: DLL_PREMATURE_UNLOAD
  • ストップコード: 0000D028
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

リリースされた COM インターフェイスの使用を試みる

考えられる原因

COM インターフェイスは、リリース後に使用されました。 この停止のトラブルシューティング: - デバッガーで 'k' コマンドを使用して現在のスタック トレースをダンプし、開放されたインターフェイスを使用しようとしたルーチンを識別します。 - 使用可能な場合は、stop の 2 番目のパラメーターと共に dps コマンドを使用して、ルーチンを解放したルーチンのスタック トレースをダンプします。

アプリケーション検証ツールによって表示される情報
  • Format: - この検証ツールの停止は、リリース後に %lS インターフェイスが使用されたことが原因で発生しました。
  • Parameter 1 - COM インターフェイス アドレス。
  • Parameter 2 - 参照カウントが 0 になったときのリリース呼び出しスタック トレース。 スタック トレースが NULL でない場合は、dps を使用してダンプします。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • Stop ID: COM_INTERFACE_ALREADY_RELEASED
  • ストップコード: 0000D029
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

ExitThread という名前の印刷ドライバー

考えられる原因

ExitThread という名前の印刷ドライバー モジュール。 印刷ドライバー モジュールが ExitThread を呼び出すと、デストラクターを呼び出すか、その他の自動クリーンup を実行する前にスレッドが終了します。 これは未定義の動作につながる可能性があります。 したがって、印刷ドライバーは常にスレッド関数から戻る必要があります。 この停止のトラブルシューティングを行うには、デバッガーで 'k' コマンドを使用して現在のスタック トレースをダンプし、ExitThread を呼び出したルーチンを識別します。

アプリケーション検証ツールによって表示される情報
  • Parameter 1 - 使用されていません。
  • Parameter 2 - 使用されていません。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • 停止 ID: DRIVER_CALLED_EXITTHREAD
  • ストップコード: 0000D02A
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

TerminateThread という名前の印刷ドライバー

考えられる原因

TerminateThread という名前の印刷ドライバー モジュール。 TerminateThread は、スレッドを終了するために使用されます。 これが発生した場合、ターゲット スレッドはユーザー モード コードを実行する機会がありません。 スレッドにアタッチされている DLL は、スレッドが終了していることを通知しません。 システムはスレッドの初期スタックを解放します。 TerminateThread は危険な関数であり、最も極端な場合にのみ使用する必要があります。 たとえば、TerminateThread では次の問題が発生する可能性があります。ターゲット スレッドがクリティカル セクションを所有している場合、クリティカル セクションは解放されません。 - ターゲット スレッドがヒープからメモリを割り当てる場合、ヒープ ロックは解放されません。 - ターゲット スレッドが終了したときに特定の kernel32 呼び出しを実行している場合、スレッドのプロセスの kernel32 状態に不整合が生じる可能性があります。 - ターゲット スレッドが共有 DLL のグローバル状態を操作している場合、DLL の状態が破棄され、DLL の他のユーザーに影響を与える可能性があります。 この停止のトラブルシューティングを行うには、デバッガーで 'k' コマンドを使用して現在のスタック トレースをダンプし、TerminateThread を呼び出したモジュールとルーチンを識別します。

アプリケーション検証ツールによって表示される情報
  • Parameter 1 - 使用されていません。
  • Parameter 2 - 使用されていません。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • 停止 ID: DRIVER_CALLED_TERMINATETHREAD
  • ストップコード: 0000D02B
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

印刷フィルターによって、現在のスレッドの COM アパートメントの種類が変更されました。

考えられる原因

この検証ツールの停止は、印刷フィルターが COM アパートメントの種類をいずれかのメソッド (InitializeFilter、StartOperation、または ShutdownOperation) で変更したときに発生します。 デバッガーで 'ln poi(<Param1>)' コマンドを使用して、印刷フィルター DLL の名前を識別します。

アプリケーション検証ツールによって表示される情報
  • 形式: -  この検証ツールの停止は、印刷フィルターの %lS メソッドが COM アパートメントの種類を %lS(%d) から %lS(%d) に変更したために発生しました。
  • パラメーター 1 - フィルター インターフェイス ポインター。 'ln poi(<Param1>)' を使用してフィルターを検索します。
  • Parameter 2 - アパートメントの種類が必要です
  • Parameter 3 - 実際のアパートタイプ
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • 停止 ID: COM_APARTMENT_TYPE_CHANGED
  • ストップコード: 0000D02C
  • 重要度: 警告
  • 1 回限りエラー: いいえ
  • エラー レポート: なし
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

出力フィルター メソッドの呼び出し後に、COM が現在のスレッド用に初期化されません。

考えられる原因

この検証ツールの停止は、印刷フィルターで CoInitialize[Ex] 呼び出しと CoUninitialize 呼び出しが不均衡な場合に発生します。 これは、要求アパートメントの種類がスレッドの現在の型と一致しない場合など、CoInitialize[Ex] が予期せずエラーを返したことが原因である可能性があります。 デバッガーで 'ln poi(<Param1>)' コマンドを使用して、印刷フィルター DLL の名前を識別します。

アプリケーション検証ツールによって表示される情報
  • 形式: -  この検証ツールの停止は、対応する正常な CoInitialize[Ex] なしで COM の CoUninitialize を呼び出す印刷フィルターの %lS メソッドが原因である可能性があります。
  • パラメーター 1 - フィルター インターフェイス ポインター。 'ln poi(<値>)' を使用してフィルターを検索します。
  • Parameter 2 - 使用されていません。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • 停止 ID: COM_NOT_INITIALIZED
  • ストップコード: 0000D02D
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

印刷ドライバーは、PT/PC XML ドキュメントの AddRef/Release 呼び出しの不一致があります。

考えられる原因

この検証ツールの停止は、印刷ドライバーが XML ドキュメント (PrintTicket や PrintCapabilities など) の参照カウントを誤って管理した場合に発生します。 参照カウントはメソッド呼び出しによって変更されることが想定されておらず、XML DOC のリークや孤立したクリティカル セクションにつながる可能性があります。

アプリケーション検証ツールによって表示される情報
  • 形式: -  %lS メソッド呼び出しの後、%lS XML ドキュメント参照カウントは %d で、%d が必要です。
  • パラメーター 1 - 問題のあるメソッド呼び出しの名前。 NULL でない場合は、'du' を使用してこれを表示します。
  • Parameter 2 - XML ドキュメントの型。 NULL でない場合は、'du' を使用してこれを表示します。
  • Parameter 3 - 現在の参照カウント。
  • パラメーター 4 - 予期される参照カウント。

追加情報
  • テスト レイヤー: PrintDriver
  • 停止 ID: XML_DOM_REFCOUNT_CHANGED
  • ストップコード: 0000D02E
  • 重要度: エラー
  • 1 回限りエラー: いいえ
  • エラー レポート: 中断
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

FatalExit が呼び出されました

考えられる原因

FatalExit が呼び出されました。 これは異常終了の一種であり、他の検証者の停止 (リークなど) が報告される可能性がありますが、是正措置は不可能です (つまり、停止は信頼性が低く、ノイズが多い)。 この停止のトラブルシューティングを行うには、デバッガーで 'k' コマンドを使用して現在のスタック トレースをダンプし、FatalExit を呼び出したモジュールとルーチンを識別します。

アプリケーション検証ツールによって表示される情報
  • パラメーター 1 - 終了コード。
  • Parameter 2 - 使用されていません。
  • Parameter 3 - 使用されていません。
  • Parameter 4 - 使用されていません。

追加情報
  • テスト レイヤー: PrintDriver
  • Stop ID: FATALEXIT
  • ストップコード: 0000D02F
  • 重大度: 情報
  • 1 回限りエラー: いいえ
  • エラー レポート: なし
  • ファイルにログを記録する: はい
  • バックトレースの作成: はい

参照

アプリケーション検証ツール - 停止コードと定義

アプリケーション検証ツール - 概要

アプリケーション検証ツール - 機能

アプリケーション検証ツール - アプリケーションのテスト

アプリケーション検証ツール - アプリケーション検証ツール内のテスト

アプリケーション検証ツール - アプリケーション検証ツール停止のデバッグ

アプリケーション検証ツール - よく寄せられる質問