DXGKDDI_STOP_DEVICE_AND_RELEASE_POST_DISPLAY_OWNERSHIP fungsi panggilan balik (dispmprt.h)

Dipanggil oleh sistem operasi untuk meminta driver miniport tampilan untuk mengatur ulang perangkat tampilan dan untuk merilis kepemilikan perangkat uji mandiri daya (POST) saat ini.

Dimulai dengan Windows 8, sistem operasi memanggil fungsi ini selama operasi penghentian Plug and Play (PnP).

Untuk menunjukkan kepada sistem operasi bahwa fungsi ini didukung, driver harus mengatur anggota NonVGASupport dari struktur DXGK_DRIVERCAPS ketika fungsi DxgkDdiQueryAdapterInfo dipanggil.

Sintaks

DXGKDDI_STOP_DEVICE_AND_RELEASE_POST_DISPLAY_OWNERSHIP DxgkddiStopDeviceAndReleasePostDisplayOwnership;

NTSTATUS DxgkddiStopDeviceAndReleasePostDisplayOwnership(
  [in]  PVOID MiniportDeviceContext,
  [in]  D3DDDI_VIDEO_PRESENT_TARGET_ID TargetId,
  [out] PDXGK_DISPLAY_INFORMATION DisplayInfo
)
{...}

Parameter

[in] MiniportDeviceContext

Handel ke blok konteks yang terkait dengan adaptor tampilan. Fungsi DxgkDdiAddDevice driver miniport tampilan sebelumnya menyediakan handel ini ke subsistem kernel grafis Microsoft DirectX.

[in] TargetId

Nilai D3DDDI_VIDEO_PRESENT_TARGET_ID yang menentukan pengidentifikasi target video yang ada pada adaptor tampilan yang tersambung dengan perangkat tampilan. Pengidentifikasi ini bisa untuk target yang tersisa dalam status jaringan saji video saat ini (VidPN) selama panggilan sebelumnya ke DxgkDdiCommitVidPn.

Untuk detail selengkapnya tentang penggunaan parameter TargetId , lihat bagian Keterangan berikut.

[out] DisplayInfo

Penunjuk ke struktur DXGK_DISPLAY_INFORMATION yang dialokasikan oleh sistem operasi.

Nilai kembali

Mengembalikan STATUS_SUCCESS jika berhasil. Jika tidak, ia mengembalikan salah satu kode kesalahan yang ditentukan dalam Ntstatus.h. Untuk informasi selengkapnya, lihat bagian Keterangan berikut ini.

Keterangan

Format warna yang diizinkan

Driver miniport tampilan hanya boleh melaporkan format warna 32-bit. Oleh karena itu, anggota DisplayInfo->ColorFormat hanya boleh menyertakan salah satu dari dua format berikut:
  • D3DDDIFMT_X8R8G8B8
  • D3DDDIFMT_A8R8G8B8

Video menyajikan inisialisasi target

Driver miniport tampilan harus mengatur anggota DisplayInfo->TargetId ke pengidentifikasi target tampilan yang tetap aktif. Biasanya, pengidentifikasi ini akan menjadi nilai parameter TargetId yang diteruskan sistem operasi ke driver.

Demikian pula, driver miniport tampilan harus mengatur anggota DisplayInfo-AcpiId> ke pengidentifikasi ACPI layar yang tetap aktif.

Langkah-langkah yang diperlukan dengan menampilkan driver miniport

Driver miniport tampilan harus mengikuti langkah-langkah ini ketika fungsi DxgkDdiStopDeviceAndReleasePostDisplayOwnership disebut:
  1. Driver harus menghentikan perangkat tampilan yang terkait dengan target video yang ada yang ditunjukkan oleh parameter TargetId tetapi harus menjaga tampilan yang terkait dengan target ini menyala dan terlihat.
  2. Driver harus memeriksa konektivitas tampilan yang terkait dengan target ini. Jika target tidak memiliki tampilan yang tersambung, driver harus menyelesaikan panggilan ke fungsi ini dan mengembalikan kode kesalahan STATUS_NOT_SUPPORTED .
  3. Pengandar harus menonaktifkan sinyal ke semua tampilan lain yang tersambung ke adaptor tampilan. Jika ini tidak memungkinkan, driver harus mencoba menempatkan gambar kosong pada semua tampilan lainnya. Jika ini tidak memungkinkan, driver harus membiarkan gambar terakhir di layar tidak berubah.
  4. Driver harus menyimpan mode tampilan saat ini pada target yang ditunjukkan dan menyediakan mode ini kembali ke sistem operasi sebagai bagian dari panggilan fungsi ini.
  5. Jika driver tidak dapat mempertahankan mode tampilan saat ini, atau jika target bukan bagian dari topologi aktif, driver harus memilih target aktif alternatif dan mencoba mempertahankan resolusi target tersebut saat ini. Jika tidak memungkinkan, driver harus mencoba mengatur tampilan ke resolusi aslinya atau ke mode resolusi tinggi. Dalam hal ini, resolusi tampilan harus diatur ke setidaknya 800 x 600 piksel baik dalam format warna D3DDDIFMT_R8G8B8 (24 bit per piksel) atau D3DDDIFMT_X8R8G8B8 (32 bpp) dari enumerasi D3DDDIFORMAT .
  6. Jika tidak ada target yang aktif, driver harus mencoba mengaktifkan target, sebaiknya panel internal, jika tersedia.
  7. Jika memungkinkan, driver harus menghapus buffer bingkai saat ini dan menonaktifkan kursor perangkat keras dan semua overlay tampilan.
  8. Jika memungkinkan, driver harus mengatur ramp gamma perangkat ke nilai defaultnya.
  9. Pengandar harus mengatur buffer bingkai saat ini agar berada dalam mode linier. Driver melakukan ini baik dengan menggunakan rentang swizzle default atau dengan menonaktifkan mode swizzle.
  10. Driver harus membuat buffer bingkai saat ini dapat diakses oleh CPU dengan memetakan buffer bingkai saat ini secara linier ke ruang alamat CPU.
  11. Driver harus memastikan bahwa visibilitas target yang ditunjukkan diatur ke "diaktifkan."
Setelah driver miniport tampilan melakukan langkah-langkah ini, driver harus mengembalikan pengaturan tampilan saat ini untuk perangkat. Driver mengembalikan informasi ini dengan mengatur anggota struktur DXGK_DISPLAY_INFORMATION yang dirujuk oleh parameter DisplayInfo .
Catatan Setelah perangkat dihentikan, informasi tampilan ini mungkin digunakan oleh pengandar tampilan generik Windows untuk mengelola perangkat tampilan.
 

Persyaratan lain

Pada sistem yang mendukung Unified Extensible Firmware Interface (UEFI), sistem input/output dasar VGA (BIOS) tidak ada. Untuk mendukung operasi penghentian PnP pada sistem ini, Windows Display Driver Model (WDDM) 1.2 dan yang lebih baru menyediakan dukungan bagi sistem operasi untuk mengatur ulang perangkat POST dan untuk mendapatkan informasi tampilannya selama operasi penghentian PnP. Sistem operasi melakukan ini dengan memanggil fungsi DxgkDdiStopDeviceAndReleasePostDisplayOwnership dari driver miniport.

Operasi penghentian PnP dapat terjadi sebagai respons terhadap permintaan berdasarkan proses seperti Manajer Perangkat, atau selama proses peningkatan driver.

Dimulai dengan Windows 8, sistem operasi memanggil fungsi DxgkDdiStopDeviceAndReleasePostDisplayOwnership driver hanya pada perangkat POST selama operasi penghentian PnP.

Catatan Ini opsional bagi driver miniport tampilan untuk memanggil DxgkCbAcquirePostDisplayOwnership. Namun, sistem operasi mungkin masih memanggil fungsi DxgkDdiStopDeviceAndReleasePostDisplayOwnership driver perangkat jika driver sebelumnya tidak memanggil DxgkCbAcquirePostDisplayOwnership.
 
Jika driver berhasil menyelesaikan panggilan ke fungsi ini, sistem operasi tidak akan memanggil fungsi DxgkDdiStopDevice . Jika driver gagal menyelesaikan panggilan ke fungsi ini, sistem operasi akan memanggil fungsi DxgkDdiStopDevice , dan perilaku perangkat akan sama seperti di Windows 7.

Pada sistem khusus UEFI, jika driver miniport tampilan gagal melakukan panggilan ke fungsi ini, layar hitam ditampilkan dan driver IHV tidak diinstal. Solusi untuk skenario ini adalah agar pengguna dapat me-reboot komputer.

Untuk informasi selengkapnya tentang bagaimana fungsi ini digunakan dalam skenario PnP, lihat Plug and Play (PnP) di WDDM 1.2 dan yang lebih baru.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 8
Server minimum yang didukung Windows Server 2012
Target Platform Desktop
Header dispmprt.h
IRQL PASSIVE_LEVEL

Lihat juga

DXGKRNL_INTERFACE

DXGK_DISPLAY_INFORMATION

DXGK_DRIVERCAPS

DxgkCbAcquirePostDisplayOwnership

DxgkDdiAddDevice

DxgkDdiQueryAdapterInfo

DxgkDdiStartDevice

DxgkDdiStopDevice