共用方式為


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 類別函式。
  • 如果 HardwareAccess 為 TRUE TRUE,則 DxgkDdiMiracastIoControl 遵循 線程和同步處理第三層中所定義的第三層同步處理模式。 請注意,GPU 的排清將會造成大量的處理額外負荷。

要求

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

另請參閱

DxgkDdiAddDevice

DxgkDdiMiracastCreateContext

MiracastIoControl

ProbeForRead

ProbeForWrite