PFN_MIRACAST_IO_CONTROL callback function (netdispumdddi.h)

Called by the user-mode display driver to send the kernel-mode display miniport driver a synchronous I/O control request.The data type of this function is PFN_MIRACAST_IO_CONTROL.

Syntax

PFN_MIRACAST_IO_CONTROL PfnMiracastIoControl;

NTSTATUS PfnMiracastIoControl(
  [in]            HANDLE hMiracastDeviceHandle,
  [in]            BOOL HardwareAccess,
  [in]            UINT InputBufferSize,
  [in]            VOID *pInputBuffer,
  [in]            UINT OutputBufferSize,
  [out]           VOID *pOutputBuffer,
  [out, optional] UINT *pBytesReturned
)
{...}

Parameters

[in] hMiracastDeviceHandle

A handle that represents a Miracast device. The Miracast user-mode driver previously obtained this handle as the hMiracastDeviceHandle parameter in a call to the CreateMiracastContext function.

[in] HardwareAccess

A Boolean value that indicates whether this I/O control request from the user-mode display driver needs to flush all the pending GPU DMA buffers.

We don't recommend that the driver set this value to TRUE except when necessary, because flushing the GPU will create substantial processing overhead.

[in] InputBufferSize

The size, in bytes, of the input buffer pointed to by pInputBuffer.

[in] pInputBuffer

A pointer to the input buffer. The InputBufferSize parameter specifies the size of the buffer.

[in] OutputBufferSize

The size, in bytes, of the output buffer pointed to by pOutputBuffer.

[out] pOutputBuffer

A driver-supplied pointer to the output buffer. The OutputBufferSize parameter specifies the size of the buffer.

[out, optional] pBytesReturned

An optional driver-supplied pointer to a UINT-type variable that holds the number of bytes that the display miniport driver returned.

Return value

On success, the operating system returns STATUS_SUCCESS. Otherwise, the function returns an error code defined in the Ntstatus.h header.

Remarks

If the Miracast user-mode driver calls MiracastIoControl when the operating system is starting a Miracast session, and if the calling thread is not the thread in which the operating system calls the StartMiracastSession function, the operating system blocks the MiracastIoControl call until the Miracast start session is finished. If the user-mode driver calls MiracastIoControl in the same context as is used in the CreateMiracastContext or StartMiracastSession functions, the operating system will process the call.

If the Miracast user-mode driver calls MiracastIoControl when the operating system is stopping a Miracast session, and if the calling thread is not the thread in which the operating system calls the StopMiracastSession function, the operating system will fail this call. If the user-mode driver calls MiracastIoControl in the same context as is used in the StopMiracastSession or DestroyMiracastContext functions, the operating system will process the call.

Requirements

Requirement Value
Minimum supported client Windows 8.1
Minimum supported server Windows Server 2012 R2
Target Platform Desktop
Header netdispumdddi.h (include Netdispumdddi.h)

See also

CreateMiracastContext

DestroyMiracastContext

StartMiracastSession

StopMiracastSession