Bagikan melalui


DXGKDDI_MIRACAST_HANDLE_IO_CONTROL fungsi panggilan balik (dispmprt.h)

Dipanggil oleh sistem operasi untuk meminta driver miniport tampilan memproses permintaan kontrol I/O sinkron sebagai respons terhadap panggilan driver tampilan mode pengguna ke fungsi MiracastIoControl .

Sintaks

DXGKDDI_MIRACAST_HANDLE_IO_CONTROL DxgkddiMiracastHandleIoControl;

NTSTATUS DxgkddiMiracastHandleIoControl(
  [in]  PVOID DriverContext,
  [in]  PVOID MiracastContext,
  [in]  ULONG InputBufferSize,
  [in]  VOID *pInputBuffer,
  [in]  ULONG OutputBufferSize,
  [out] VOID *pOutputBuffer,
  [out] ULONG *BytesReturned
)
{...}

Parameter

[in] DriverContext

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

[in] MiracastContext

Konteks perangkat Miracast, disediakan oleh sistem operasi. Konteks ini disediakan oleh driver miniport tampilan dalam panggilan ke fungsi DxgkDdiMiracastCreateContext .

[in] InputBufferSize

Disediakan oleh sistem operasi sebagai ukuran, dalam byte, dari buffer input yang diacu oleh pInputBuffer. Nilai ini berasal sebagai parameter InputBufferSize fungsi MiracastIoControl mode pengguna.

[in] pInputBuffer

Disediakan oleh sistem operasi sebagai penunjuk ke buffer input. Nilai ini berasal sebagai parameter InputBufferSize fungsi MiracastIoControl mode pengguna.

InputBufferSize menentukan ukuran buffer.

[in] OutputBufferSize

Disediakan oleh sistem operasi sebagai ukuran, dalam byte, dari buffer output yang diacu oleh pOutputBuffer.

Nilai ini berasal sebagai parameter OutputBufferSize fungsi MiracastIoControl mode pengguna.

[out] pOutputBuffer

Disediakan oleh sistem operasi sebagai penunjuk ke buffer output. Nilai ini berasal sebagai parameter pOutputBuffer fungsi MiracastIoControl mode pengguna.

OutBufferSize menentukan ukuran buffer.

[out] BytesReturned

Disediakan oleh sistem operasi sebagai penunjuk ke buffer yang menyimpan nilai jenis ULONG yang merupakan jumlah byte yang dikembalikan driver miniport tampilan dalam buffer yang ditunjukkan oleh pOutputBuffer.

Mengembalikan nilai

Mengembalikan STATUS_SUCCESS jika berhasil. Jika tidak, ia mengembalikan salah satu kode kesalahan yang ditentukan dalam Ntstatus.h.

Keterangan

Sistem operasi menjamin bahwa panggilan ke DxgkDdiMiracastIoControl terjadi di ruang proses yang sama dengan permintaan MiracastIoControl mode pengguna dipanggil.

Meskipun sistem operasi hanya menyalin nilai ukuran buffer input dan output dari parameter masing-masing MiracastIoControl, driver miniport tampilan bertanggung jawab untuk memeriksa ukuran buffer sebelum menggunakan buffer. Selain itu, driver harus melakukan operasi pemeriksaan dalam blok coba/kecuali panggilan, menggunakan fungsi ProbeForRead dan/atau ProbeForWrite , untuk memverifikasi memori mode pengguna yang ditunjuk buffer input.

Operasi kontrol I/O ini diproses secara sinkron dengan panggilan ke fungsi MiracastIoControl mode pengguna.

Sinkronisasi

Sistem operasi mengelompokkan fungsi DxgkDdiMiracastCreateContext, DxgkDdiMiracastDestroyContext, dan DxgkDdiMiracastIoControl sebagai kelas Miracast .

Tingkat threading dan sinkronisasi untuk fungsi ini diatur oleh bagaimana driver mode pengguna mengatur parameter HardwareAccess dalam panggilan ke fungsi MiracastIoControl :

  • Jika HardwareAccessFALSE, maka sistem operasi menjamin bahwa DxgkDdiMiracastIoControl mengikuti mode sinkronisasi tingkat kedua seperti yang didefinisikan dalam Threading dan Sinkronisasi Tingkat Kedua. DxgkDdiMiracastIoControl dapat dipanggil ketika kelas tingkat 0, 1, atau non-Miracast lain dari fungsi tingkat 2 dipanggil pada konteks utas lain. Namun, hanya salah satu fungsi kelas Miracast tingkat 2 yang dapat dipanggil pada satu waktu.
  • Jika HardwareAccessTRUE, maka DxgkDdiMiracastIoControl mengikuti mode sinkronisasi tingkat ketiga seperti yang didefinisikan dalam Threading dan Synchronization Third Level. Perhatikan bahwa pembilasan GPU akan membuat overhead pemrosesan yang substansial.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 8.1
Server minimum yang didukung Windows Server 2012 R2
Target Platform Desktop
Header dispmprt.h (termasuk Dispmprt.h)
IRQL PASSIVE_LEVEL

Lihat juga

DxgkDdiAddDevice

DxgkDdiMiracastCreateContext

MiracastIoControl

ProbeForRead

ProbeForWrite