struktur DXGK_DEBUG_REPORT_INTERFACE (dispmprt.h)
Struktur DXGK_DEBUG_REPORT_INTERFACE berisi pointer ke fungsi di antarmuka Laporan Debug, yang diimplementasikan oleh driver port tampilan.
Sintaks
typedef struct _DXGK_DEBUG_REPORT_INTERFACE {
USHORT Size;
USHORT Version;
PVOID Context;
PINTERFACE_REFERENCE InterfaceReference;
PINTERFACE_DEREFERENCE InterfaceDereference;
DXGK_DEBUG_REPORT_HANDLE( )(HANDLE DeviceHandle,ULONG ulCode,ULONG_PTR ulpArg1,ULONG_PTR ulpArg2,ULONG_PTR ulpArg3,ULONG_PTR ulpArg4) *DbgReportCreate;
BOOLEAN( )(DXGK_DEBUG_REPORT_HANDLE hReport,PVOID pvData,ULONG ulDataSize) *DbgReportSecondaryData;
VOID( )(DXGK_DEBUG_REPORT_HANDLE hReport) *DbgReportComplete;
} DXGK_DEBUG_REPORT_INTERFACE, *PDXGK_DEBUG_REPORT_INTERFACE;
Anggota
Size
Ukuran, dalam byte, dari struktur ini.
Version
Nomor versi antarmuka Laporan Debug. Konstanta nomor versi ditentukan dalam Dispmprt.h (misalnya, DXGK_DEBUG_REPORT_INTERFACE_VERSION_1).
Context
Penunjuk ke konteks yang disediakan oleh driver port tampilan.
InterfaceReference
Penunjuk ke fungsi referensi antarmuka yang diimplementasikan oleh driver port tampilan.
InterfaceDereference
Penunjuk ke fungsi dereferensi antarmuka yang diimplementasikan oleh driver port tampilan.
DbgReportCreate
Membuat laporan kesalahan awal.
Jika driver miniport tampilan Anda mendeteksi kegagalan dan kemudian pulih darinya, Anda dapat membuat laporan kesalahan yang nantinya dapat digunakan untuk penelusuran kesalahan. Pertama, panggil DbgReportCreate untuk membuat laporan awal. Kemudian tambahkan data ke laporan dengan melakukan satu atau beberapa panggilan ke DbgReportSecondaryData. Setelah Anda selesai menambahkan data ke laporan, panggil DbgReportComplete.
Sintaks untuk DbgReportComplete mengikuti.
// IRQL: PASSIVE_LEVEL
DXGK_DEBUG_REPORT_HANDLE (*DbgReportCreate)(
_In_ HANDLE DeviceHandle,
_In_ ULONG ulCode,
_In_ ULONG_PTR ulpArg1,
_In_ ULONG_PTR ulpArg2,
_In_ ULONG_PTR ulpArg3,
_In_ ULONG_PTR ulpArg4
);
DeviceHandle adalah handel ke blok konteks yang terkait dengan adaptor tampilan. Driver miniport tampilan membuat handel ini dalam fungsi DxgkDdiAddDevice* - nya. Parameter ini bisa NULL.
ulCode adalah kode untuk laporan kesalahan. Kode berikut didukung:
- THREAD_STUCK_IN_DEVICE_DRIVER
- VIDEO_DRIVER_DEBUG_REPORT_REQUEST
- VIDEO_TDR_FATAL_ERROR
- VIDEO_TDR_SUCCESS
ulpArg1 adalah argumen pertama yang ditambahkan ke laporan. Pengembang driver miniport tampilan menentukan nilai dan arti dari ulpArg1.
ulpArg2 adalah argumen kedua yang akan ditambahkan ke laporan. Pengembang driver miniport tampilan menentukan nilai dan arti dari ulpArg2.
ulpArg3 adalah argumen ketiga yang akan ditambahkan ke laporan. Pengembang driver miniport tampilan menentukan nilai dan arti dari ulpArg3.
ulpArg4 dicadangkan.
DbgReportSecondaryData
Menambahkan data ke laporan kesalahan awal yang sebelumnya dibuat oleh DbgReportCreate.
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.
- Dapatkan data yang paling aman untuk dikumpulkan.
- Panggil DbgReportSecondaryData untuk menulis data tersebut ke laporan.
- Dapatkan data yang lebih berisiko untuk dikumpulkan.
- Hubungi 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.
- Lanjutkan memanggil DbgReportSecondaryData, meningkatkan data setiap kali, hingga Anda tidak memiliki data lagi untuk ditambahkan.
- Setelah Anda selesai menambahkan data ke laporan, tutup laporan dengan memanggil DbgReportComplete. Laporan disimpan dalam file dan dikirim ke Microsoft saat komputer di-boot ulang.
- Jika komputer berhenti merespons sebelum Anda memanggil DbgReportComplete, data yang ditambahkan ke laporan oleh panggilan berhasil terbaru ke DbgReportSecondaryData disimpan lalu dikirim ke Microsoft saat komputer di-boot ulang.
BOOLEAN (*DbgReportSecondaryData)(
_Inout_ DXGK_DEBUG_REPORT_HANDLE hReport,
_In_ PVOID pvData,
_In_ ULONG ulDataSize
);
hReport adalah handel ke laporan kesalahan tempat data akan ditambahkan. Driver miniport tampilan sebelumnya memperoleh handel ini dengan memanggil DbgReportCreate.
pvData adalah penunjuk ke buffer yang menyimpan data untuk ditambahkan ke laporan.
ulDataSize adalah ukuran, dalam byte, dari data yang akan ditambahkan ke laporan. Nilai parameter ini harus kurang dari atau sama dengan DXGK_DEBUG_REPORT_MAX_SIZE.
DbgReportComplete
Menutup laporan kesalahan dan membebaskan sumber daya apa pun yang terkait dengan laporan.
DbgReportCreate membuat entri di log peristiwa sistem dan menampilkan kotak dialog yang memberi tahu pengguna tentang kegagalan dan menyajikan kesempatan untuk mengunggah laporan kesalahan ke Microsoft.
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 argumen keempat 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.
// IRQL: PASSIVE_LEVEL
VOID DbgReportComplete(
IN OUT DXGK_DEBUG_REPORT_HANDLE hReport
);
- hReport adalah handel ke laporan kesalahan yang akan ditutup. Driver miniport tampilan sebelumnya memperoleh handel ini dengan memanggil DbgReportCreate.
IRQL: PASSIVE_LEVEL
Keterangan
Driver miniport tampilan memasok anggota Ukuran dan Versi dari struktur ini, dan kemudian memanggil DxgkCbQueryServices*, yang mengisi anggota struktur ini yang tersisa.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows Vista |
Header | dispmprt.h (termasuk Dispmprt.h) |