IWMDMDevice3::D eviceIoControl 方法 (mswmdm.h)

DeviceIoControl方法會將裝置 I/O 控制項 (IOCTL) 程式碼傳送至裝置。 這是傳遞方法;Windows Media 裝置管理員只會在驗證參數之後將呼叫轉送到服務提供者。

語法

HRESULT DeviceIoControl(
  [in]      DWORD   dwIoControlCode,
  [in]      BYTE    *lpInBuffer,
  [in]      DWORD   nInBufferSize,
  [out]     BYTE    *lpOutBuffer,
  [in, out] LPDWORD pnOutBufferSize
);

參數

[in] dwIoControlCode

控制要傳送至裝置的程式碼。 在 MTP 裝置上呼叫此方法時,請使用 SDK 隨附于 MtpExt.h 中定義的值IOCTL_MTP_CUSTOM_COMMAND。

[in] lpInBuffer

呼叫端所提供的輸入緩衝區選擇性指標。 如果nInBufferSize為零,它可以是Null。 在 MTP 裝置上呼叫此方法時,您可以傳入 MTP_COMMAND_DATA_IN 結構。

[in] nInBufferSize

輸入緩衝區的大小,以位元組為單位。 在 MTP 裝置上呼叫此方法時,您可以使用宏 SIZEOF_REQUIRED_COMMAND_DATA_IN 來指定大小。

[out] lpOutBuffer

呼叫端所提供的輸出緩衝區選擇性指標。 如果pnOutBufferSize指向零的值,它可以是Null。 在 MTP 裝置上呼叫此方法時,您可以傳入 MTP_COMMAND_DATA_OUT 結構。

[in, out] pnOutBufferSize

輸出緩衝區的大小,以位元組為單位。 當呼叫傳回時,它會指定實際傳回的位元組數目。 在 MTP 裝置上呼叫此方法時,您可以使用 MtpExt.h 中定義的宏 SIZEOF_REQUIRED_COMMAND_DATA_OUT 來指定大小。此參數不可為 Null

傳回值

方法會傳回 HRESULT。 Windows Media 中的所有介面方法裝置管理員都可以傳回下列任何錯誤碼類別:

  • 標準 COM 錯誤碼
  • 轉換成 HRESULT 值的 Windows 錯誤碼
  • Windows Media 裝置管理員錯誤碼
如需可能錯誤碼的廣泛清單,請參閱 錯誤碼

備註

此方法提供應用程式與服務提供者之間的私人通訊模式。 服務提供者接著可以處理此 IOCTL、選擇性地修改它,並將它傳遞至核心模式驅動程式。

相較于 IWMDMDevice::SendOpaqueCommand,這個方法較適合 DeviceIoControl Windows API,因為呼叫端會提供輸出緩衝區。 此外,不同于 IWMDMDevice::SendOpaqueCommand,此方法不會涉及任何 MAC 檢查,而且更有效率。

例如,這個方法可用來將自訂媒體傳輸通訊協定 (MTP) 命令傳送至 MTP 裝置。

需求

   
目標平台 Windows
標頭 mswmdm.h
程式庫 Mssachlp.lib

另請參閱

IWMDMDevice3 介面

IWMDMDevice::SendOpaqueCommand