Bagikan melalui


struktur VIDEO_PORT_DEBUG_REPORT_INTERFACE (video.h)

Struktur VIDEO_PORT_DEBUG_REPORT_INTERFACE menyimpan penunjuk ke fungsi Laporan Debug, yang diimplementasikan oleh driver port video.

Sintaks

typedef struct _VIDEO_PORT_DEBUG_REPORT_INTERFACE
{
    IN USHORT                  Size;
    IN USHORT                  Version;
    OUT PVOID                  Context;
    OUT PINTERFACE_REFERENCE   InterfaceReference;
    OUT PINTERFACE_DEREFERENCE InterfaceDereference;

    OUT
    PVIDEO_DEBUG_REPORT
    (*DbgReportCreate)(
        IN PVOID HwDeviceExtension,
        IN ULONG ulCode,
        IN ULONG_PTR ulpArg1,
        IN ULONG_PTR ulpArg2,
        IN ULONG_PTR ulpArg3,
        IN ULONG_PTR ulpArg4
        );

    OUT
    BOOLEAN
    (*DbgReportSecondaryData)(
        IN OUT PVIDEO_DEBUG_REPORT pReport,
        IN PVOID pvData,
        IN ULONG ulDataSize
        );

    OUT
    VOID
    (*DbgReportComplete)(
        IN OUT PVIDEO_DEBUG_REPORT pReport
        );
} VIDEO_PORT_DEBUG_REPORT_INTERFACE, *PVIDEO_PORT_DEBUG_REPORT_INTERFACE;

Anggota

Size

Menentukan ukuran, dalam byte, dari struktur ini.

Version

Menentukan versi antarmuka yang dikembalikan oleh driver port video. Saat ini, satu-satunya versi yang didukung adalah VIDEO_PORT_DEBUG_REPORT_INTERFACE_VERSION_1.

Context

Arahkan ke konteks yang disediakan oleh driver port video.

InterfaceReference

Penunjuk ke fungsi referensi antarmuka yang diimplementasikan oleh driver port video.

InterfaceDereference

Penunjuk ke fungsi dereferensi antarmuka yang diimplementasikan oleh driver port video.

OUT (IN PVOID HwDeviceExtension,IN ULONG ulCode,IN ULONG_PTR ulpArg1,IN ULONG_PTR ulpArg2,IN ULONG_PTR ulpArg3,IN ULONG_PTR ulpArg4) PVIDEO_DEBUG_REPORT( *DbgReportCreate unnamedParam1)

OUT (IN OUT PVIDEO_DEBUG_REPORT pReport,IN PVOID pvData,IN ULONG ulDataSize) BOOLEAN( *DbgReportSecondaryData unnamedParam1)

OUT (IN OUT PVIDEO_DEBUG_REPORT pReport) VOID( *DbgReportComplete unnamedParam1)

Keterangan

Driver miniport video memasok anggota Ukuran dan Versi dari struktur ini, lalu memanggil VideoPortQueryServices, yang menginisialisasi anggotanya yang tersisa.

Jika driver miniport video Anda mendeteksi kegagalan dan kemudian pulih darinya, Anda dapat membuat laporan kesalahan yang nantinya dapat digunakan untuk penelusuran kesalahan dengan memanggil anggota fungsi panggilan balik VIDEO_PORT_DEBUG_REPORT_INTERFACE sebagai berikut:

  1. Pertama, panggil DbgReportCreate untuk membuat laporan awal.
  2. Kemudian tambahkan data ke laporan dengan melakukan satu atau beberapa panggilan ke DbgReportSecondaryData.
  3. Setelah Anda selesai menambahkan data ke laporan, panggil DbgReportComplete.

Laporan kesalahan disimpan dalam file dan dijadwalkan untuk dikirim ke Microsoft saat komputer di-boot ulang. Laporan kesalahan berisi kode kesalahan dan empat argumen. Kode kesalahan dan tiga argumen pertama disediakan oleh pemanggil DbgReportCreate. Argumen keempat dalam laporan disediakan oleh sistem operasi dan menunjukkan jumlah laporan yang dihasilkan sejak komputer dimulai. Misalnya, jika nilai ulpArg4 adalah 5, ini berarti bahwa empat laporan kesalahan sebelumnya dihasilkan oleh driver miniport tampilan sejak komputer terakhir dimulai. Hanya laporan kelima yang disimpan karena setiap laporan menimpa laporan sebelumnya.

Struktur VIDEO_DEBUG_REPORT yang dikembalikan oleh DbgReportCreate dan kemudian diteruskan ke DbgReportSecondaryData dan DbgReportComplete buram. Jangan mencoba mengakses anggotanya secara langsung.

Bagian berikut menjelaskan fungsi panggilan balik ini secara rinci. Panggilan balik ini harus dipanggil di IRQL = PASSIVE_LEVEL.

DbgReportCreate

DbgReportCreate membuat laporan kesalahan awal. Ini membuat entri dalam log peristiwa sistem dan menampilkan kotak dialog yang memberi tahu pengguna tentang kegagalan dan menyajikan kesempatan untuk mengunggah laporan kesalahan ke Microsoft. DbgReportCreate mengembalikan penunjuk ke struktur VIDEO_DEBUG_REPORT buram yang mewakili handel ke laporan debug yang baru dibuat.

DbgReportCreate Parameters

  • HwDeviceHandle [in] Handel ke blok konteks yang terkait dengan adaptor tampilan. Driver miniport tampilan membuat handel ini dalam fungsi DxgkDdiAddDevice-nya. Parameter ini bisa NULL.
  • ulCode [in] Kode untuk laporan kesalahan. Kode berikut didukung: THREAD_STUCK_IN_DEVICE_DRIVER VIDEO_DRIVER_DEBUG_REPORT_REQUEST, VIDEO_TDR_FATAL_ERROR, dan VIDEO_TDR_SUCCESS.
  • ulpArg1 [in] Argumen pertama yang akan ditambahkan ke laporan. Pengembang driver miniport tampilan menentukan nilai dan makna ulpArg1.
  • ulpArg2 [in] Argumen kedua yang akan ditambahkan ke laporan. Pengembang driver miniport tampilan menentukan nilai dan makna ulpArg2.
  • ulpArg3 [in] Argumen ketiga yang akan ditambahkan ke laporan. Pengembang driver miniport tampilan menentukan nilai dan makna ulpArg3.
  • ulpArg4 [in] Dicadangkan untuk penggunaan sistem.

DbgReportSecondaryData

Fungsi DbgReportSecondaryData menambahkan data ke laporan kesalahan awal yang sebelumnya dibuat oleh DbgReportCreate. Jika DbgReportSecondaryData berhasil, DbgReportSecondaryData akan mengembalikan TRUE. Jika tidak, ia mengembalikan FALSE.

Panggil DbgReportSecondaryData untuk menambahkan data ke laporan awal yang dibuat oleh panggilan sebelumnya ke DbgReportCreate. Anda dapat memanggil DbgReportSecondaryData beberapa kali, tetapi dengan setiap panggilan, data yang ditulis ke laporan menimpa data yang ditulis oleh panggilan sebelumnya. Langkah-langkah berikut memberikan strategi yang baik untuk menambahkan data secara bertahap ke laporan.

  1. Dapatkan data yang paling aman untuk dikumpulkan.
  2. Panggil DbgReportSecondaryData untuk menulis data tersebut ke laporan.
  3. Dapatkan data yang lebih berisiko untuk dikumpulkan.
  4. Panggil DbgReportSecondaryData untuk menulis data aman asli bersama dengan data berisiko yang baru dikumpulkan ke laporan. Anda harus menyertakan data yang aman dan berisiko dalam panggilan ini karena data yang ditulis oleh panggilan ini menimpa data yang ditulis oleh panggilan pertama ke DbgReportSecondaryData.
  5. Lanjutkan memanggil DbgReportSecondaryData, meningkatkan data setiap kali, sampai Anda tidak memiliki data lagi untuk ditambahkan.

Setelah Anda selesai menambahkan data ke laporan, tutup laporan dengan memanggil DbgReportComplete. Jika komputer berhenti merespons sebelum Anda memanggil DbgReportComplete, data yang ditambahkan ke laporan dengan panggilan berhasil terbaru ke DbgReportSecondaryData disimpan lalu dikirim ke Microsoft saat komputer di-boot ulang.

Parameter DbgReportSecondaryData

  • hReport [masuk, keluar] Handel ke laporan kesalahan tempat data akan ditambahkan. Driver miniport tampilan sebelumnya memperoleh handel ini dengan memanggil DbgReportCreate.
  • pvData [in] Penunjuk ke buffer yang menyimpan data untuk ditambahkan ke laporan.
  • ulDataSize [in] Ukuran, dalam byte, data yang akan ditambahkan ke laporan. Nilai parameter ini harus kurang dari atau sama dengan DXGK_DEBUG_REPORT_MAX_SIZE.

DbgReportComplete

Fungsi DbgReportComplete menutup laporan kesalahan dan membebaskan sumber daya apa pun yang terkait dengan laporan.

DbgReportComplete membuat entri di log peristiwa sistem dan menampilkan kotak dialog yang memberi tahu pengguna tentang kegagalan dan kesempatan untuk mengunggah laporan kesalahan ke Microsoft.

Parameter DbgReportComplete

  • hReport Penunjuk ke struktur VIDEO_DEBUG_REPORT yang berisi handel ke laporan kesalahan yang akan ditutup. Driver miniport tampilan sebelumnya memperoleh handel ini dengan memanggil DbgReportCreate.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP SP2
Server minimum yang didukung Windows Server 2003 SP1
Header video.h (sertakan Video.h)

Lihat juga

ANTARMUKA

VideoPortQueryServices