DXGKCB_MIRACAST_SEND_MESSAGE fungsi panggilan balik (dispmprt.h)
Mengirim pesan asinkron ke driver tampilan mode pengguna.
Sintaks
DXGKCB_MIRACAST_SEND_MESSAGE DxgkcbMiracastSendMessage;
NTSTATUS DxgkcbMiracastSendMessage(
[in] HANDLE MiracastHandle,
[in] ULONG InputBufferSize,
[in] VOID *pInputBuffer,
[in] ULONG OutputBufferSize,
[out] VOID *pOutputBuffer,
[in, optional] DXGKCB_MIRACAST_SEND_MESSAGE_CALLBACK pCallback,
[in, optional] PVOID pCallbackContext
)
{...}
Parameter
[in] MiracastHandle
Handel yang disediakan driver ke perangkat tampilan Miracast. Handel ini awalnya diteruskan di anggota MiracastHandle dari struktur DXGK_MIRACAST_DISPLAY_CALLBACKS dalam panggilan ke fungsi DxgkDdiMiracastCreateContext .
[in] InputBufferSize
Ukuran, dalam byte, dari buffer input yang diacu oleh pInputBuffer.
[in] pInputBuffer
Penunjuk ke buffer input. InputBufferSize menentukan ukuran buffer.
Lihat Keterangan untuk informasi selengkapnya tentang buffer input.
[in] OutputBufferSize
Ukuran, dalam byte, dari buffer output yang diacu oleh pOutputBuffer.
[out] pOutputBuffer
Penunjuk ke buffer output. OutBufferSize menentukan ukuran buffer.
Lihat Keterangan untuk informasi selengkapnya tentang buffer output.
[in, optional] pCallback
Penunjuk opsional, disediakan oleh driver miniport tampilan, ke fungsi panggilan balik DxgkCbMiracastSendMessageCallback .
Jika driver miniport tampilan memasok penunjuk ke DxgkCbMiracastSendMessageCallback, maka setelah driver mode pengguna menangani pesan, sistem operasi mengirim pesan ke driver mode pengguna secara asinkron dengan memanggil DxgkCbMiracastSendMessageCallback.
Lihat Mengembalikan nilai dan bagian Keterangan untuk informasi selengkapnya tentang panggilan ke DxgkCbMiracastSendMessageCallback.
[in, optional] pCallbackContext
Penunjuk opsional yang disediakan driver ke konteks panggilan balik yang disediakan driver. Sistem operasi meneruskan konteks ini ke rutinitas panggilan balik yang disediakan driver setelah operasi selesai.
Mengembalikan nilai
Mengembalikan STATUS_PENDING jika berhasil mengirimkan pesan. Jika tidak, ia mengembalikan salah satu kode kesalahan yang ditentukan dalam Ntstatus.h.
Jika driver miniport tampilan perlu mengetahui status penanganan pesan dalam mode pengguna, driver tersebut harus menyediakan fungsi DxgkCbMiracastSendMessageCallback dalam parameter pCallback dan memeriksa status pengembalian dalam parameter pIoStatusBlock fungsi tersebut.
Keterangan
Jika driver miniport tampilan memasok buffer pInputBuffer dan pOutputBuffer , adalah tanggung jawab driver untuk menahan kedua buffer ini sampai fungsi DxgkCbMiracastSendMessageCallback dipanggil. Jika tidak, masalah kerusakan memori acak dapat dibuat.
Jika driver memasok DxgkCbMiracastSendMessageCallback dalam parameter pCallback , ada kemungkinan bahwa DxgkCbMiracastSendMessageCallback akan kembali sebelum DxgkCbMiracastSendMessage kembali.
Contoh urutan panggilan
Berikut adalah contoh kode yang menunjukkan cara menggunakan fungsi ini:typedef struct _CALLBACK_CONTEXT
{
UCHAR InputBuffer[INPUT_BUFFER_SIZE];
UCHAR OutputBuffer[OUTPUT_BUFFER_SIZE];
} CALLBACK_CONTEXT, *PCALLBACK_CONTEXT;
...
_IRQL_requires_(PASSIVE_LEVEL)
VOID
DriverCallbackFunction(
_In_ PVOID Context,
_In_ PIO_STATUS_BLOCK pIoStatusBlock
)
{
PCALLBACK_CONTEXT CallbackContex = (PCALLBACK_CONTEXT)Context;
ExFreePool(CallbackContex);
}
...
CallbackContex = (PCALLBACK_CONTEXT)ExAllocatePoolWithTag(
PagedPool,
sizeof(CALLBACK_CONTEXT),
DRIVER_TAG);
if (CallbackContex == NULL)
{
return STATUS_NO_MEMORY;
}
RtlZeroMemory(CallbackContex, sizeof(CALLBACK_CONTEXT));
CallbackContex->InputBuffer[0] = 0xaa;
CallbackContex->InputBuffer[1] = 0x55;
Status =
pDeviceContext->MiracastCallbacks.DxgkCbMiracastSendMessage(
pDeviceContext->MiracastCallbacks.MiracastHandle,
sizeof(CallbackContex->InputBuffer),
CallbackContex->InputBuffer,
sizeof(CallbackContex->OutputBuffer),
CallbackContext->OutputBuffer,
&DriverCallbackFunction,
CallbackContex);
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
DXGK_MIRACAST_DISPLAY_CALLBACKS
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk