DXGKCB_MIRACAST_SEND_MESSAGE fonction de rappel (dispmprt.h)
Envoie un message asynchrone au pilote d’affichage en mode utilisateur.
Syntaxe
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
)
{...}
Paramètres
[in] MiracastHandle
Handle fourni par le pilote sur l’appareil d’affichage Miracast. Ce handle a été passé à l’origine dans le membre MiracastHandle de la structure DXGK_MIRACAST_DISPLAY_CALLBACKS dans un appel à la fonction DxgkDdiMiracastCreateContext.
[in] InputBufferSize
Taille, en octets, de la mémoire tampon d’entrée pointée par pInputBuffer.
[in] pInputBuffer
Pointeur vers la mémoire tampon d’entrée. InputBufferSize spécifie la taille de la mémoire tampon.
Pour plus d’informations sur la mémoire tampon d’entrée, consultez les remarques.
[in] OutputBufferSize
Taille, en octets, de la mémoire tampon de sortie pointée par pOutputBuffer.
[out] pOutputBuffer
Pointeur vers la mémoire tampon de sortie. OutBufferSize spécifie la taille de la mémoire tampon.
Pour plus d’informations sur la mémoire tampon de sortie, consultez Les remarques.
[in, optional] pCallback
Pointeur facultatif, fourni par le pilote de miniport d’affichage, vers la fonction de rappel DxgkCbMiracastSendMessageCallback.
Si le pilote miniport d’affichage fournit le pointeur vers DxgkCbMiracastSendMessageCallback, puis après que le pilote en mode utilisateur gère le message, le système d’exploitation envoie un message au pilote en mode utilisateur de manière asynchrone en appelant DxgkCbMiracastSendMessageCallback.
Pour plus d’informations sur les appels à DxgkCbMiracastSendMessageCallback, consultez les sections Retour et Remarques.
[in, optional] pCallbackContext
Pointeur facultatif fourni par le pilote vers le contexte de rappel fourni par le pilote. Le système d’exploitation transmet ce contexte à la routine de rappel fournie par le pilote une fois l’opération terminée.
Valeur de retour
Retourne STATUS_PENDING s’il remet correctement le message. Sinon, elle retourne l’un des codes d’erreur définis dans Ntstatus.h.
Si le pilote display miniport doit connaître l’état de la gestion des messages en mode utilisateur, il doit fournir la fonction DxgkCbMiracastSendMessageCallback dans le paramètre pCallback et vérifier l’état de retour dans le paramètre pIoStatusBlock paramètre.
Remarques
Si le pilote miniport d’affichage fournit le pInputBuffer et mémoires tampons pOutputBuffer, il incombe au pilote de conserver ces deux mémoires tampons jusqu’à ce que la fonction DxgkCbMiracastSendMessageCallback soit appelée. Sinon, un problème de corruption de mémoire aléatoire peut être créé.
Si le pilote fournit le DxgkCbMiracastSendMessageCallback dans le paramètre pCallback, il est possible que DxgkCbMiracastSendMessageCallback retourne avant DxgkCbMiracastSendMessage.
Exemple de séquence d’appel
Voici un exemple de code qui montre comment utiliser cette fonction :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);
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows 8.1 |
serveur minimum pris en charge | Windows Server 2012 R2 |
plateforme cible | Bureau |
d’en-tête | dispmprt.h (include Dispmprt.h) |
IRQL | PASSIVE_LEVEL |
Voir aussi
DXGK_MIRACAST_DISPLAY_CALLBACKS