DXGKDDI_MIRACAST_HANDLE_IO_CONTROL回呼函式 (dispmprt.h)

由操作系統呼叫,要求顯示迷你埠驅動程序處理同步 I/O 控件要求,以回應 MiracastIoControl 函式的使用者模式顯示驅動程式呼叫。

語法

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
)
{...}

參數

[in] DriverContext

與顯示配接器相關聯的內容區塊句柄。 顯示迷你埠驅動程式的 DxgkDdiAddDevice 函式先前已將此句柄提供給 DirectX 圖形核心子系統。

[in] MiracastContext

由操作系統提供的Miracast裝置內容。 此內容是由顯示迷你埠驅動程式在呼叫 DxgkDdiMiracastCreateContext 函式中提供。

[in] InputBufferSize

由操作系統提供,作為 pInputBuffer 所指向之輸入緩衝區的大小,以位元組為單位。 這個值源自使用者模式 MiracastIoControl 函式的 InputBufferSize 參數。

[in] pInputBuffer

由操作系統作為輸入緩衝區的指標提供。 這個值源自使用者模式 MiracastIoControl 函式的 InputBufferSize 參數。

InputBufferSize 會指定緩衝區的大小。

[in] OutputBufferSize

由操作系統提供作為 pOutputBuffer 所指向輸出緩衝區的大小,以位元組為單位。

這個值源自使用者模式 MiracastIoControl 函式的 OutputBufferSize 參數。

[out] pOutputBuffer

由操作系統作為輸出緩衝區的指標提供。 這個值源自使用者模式 MiracastIoControl 函式的 pOutputBuffer 參數。

OutBufferSize 會指定緩衝區的大小。

[out] BytesReturned

由操作系統做為緩衝區指標提供,該緩衝區包含 ULONG類型值,這是 pOutputBuffer 所指向緩衝區中所傳回的顯示迷你埠驅動程式所傳回的位元元組數目。

傳回值

如果成功,則會 傳回STATUS_SUCCESS 。 否則,它會傳回 Ntstatus.h 中定義的其中一個錯誤碼。

備註

操作系統可確保呼叫 DxgkDdiMiracastIoControl 時,會在與呼叫 使用者模式 MiracastIoControl 要求相同的進程空間中發生。

雖然操作系統只會從 MiracastIoControl的個別參數複製輸入和輸出緩衝區大小的值,但顯示迷你埠驅動程式仍負責在使用緩衝區之前檢查緩衝區大小。 此外,驅動程式應該在 try/except 呼叫區塊內執行探查作業,使用 ProbeForRead 和/或 ProbeForWrite 函式來驗證輸入緩衝區所指向的任何使用者模式記憶體。

此 I/O 控制作業會以使用者模式 MiracastIoControl 函式的呼叫同步處理。

同步

操作系統會將 DxgkDdiMiracastCreateContextDxgkDdiMiracastDestroyContextDxgkDdiMiracastIoControl 函式分組為 Miracast 類別。

此函式的線程和同步處理層級是由使用者模式驅動程式如何在 MiracastIoControl 函式的呼叫中設定 HardwareAccess 參數:

  • 如果 HardwareAccessFALSE,則作業系統會保證 DxgkDdiMiracastIoControl 遵循 線程和同步處理第二層中所定義的第二層同步處理模式。 在另一個線程內容上呼叫其他層級 0、1 或非 Miracast 類別時,可以呼叫 DxgkDdiMiracastIoControl。 不過,一次只能呼叫其中一個層級 2 Miracast 類別函式。
  • 如果 HardwareAccessTRUE則 DxgkDdiMiracastIoControl 會遵循線程 和同步處理第三層中所定義的第三層同步處理模式。 請注意,GPU 的排清將會產生大量的處理額外負荷。

規格需求

需求
最低支援的用戶端 Windows 8.1
最低支援的伺服器 Windows Server 2012 R2
目標平台 桌面
標頭 dispmprt.h (包含 Dispmprt.h)
IRQL PASSIVE_LEVEL

另請參閱

DxgkDdiAddDevice

DxgkDdiMiracastCreateContext

MiracastIoControl

ProbeForRead

ProbeForWrite