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

DeviceIoControl 方法调用设备 I/O 控件。

语法

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

参数

[in] dwIoControlCode

正在发送到设备的 I/O 控制代码。

[in] lpInBuffer

调用应用程序提供的输入缓冲区。 如果 nInBufferSize 为零,则可以为 NULL

[in] nInBufferSize

lpInBuffer 的大小(以字节为单位)。

[out] lpOutBuffer

由调用应用程序提供的输出缓冲区。

[in] pnOutBufferSize

lpOutBuffer 的大小(以字节为单位)。

返回值

该方法返回 HRESULT。 Windows Media 设备管理器 中的所有接口方法都可以返回以下任一类错误代码:

  • 标准 COM 错误代码
  • 转换为 HRESULT 值的 Windows 错误代码
  • Windows Media 设备管理器错误代码
有关可能错误代码的广泛列表,请参阅 错误代码

注解

此方法提供应用程序和服务提供商之间的专用通信模式。 然后,服务提供商可以处理此 IOCTL,根据需要对其进行修改,并将其传递给内核模式驱动程序。

IMDSPDevice::SendOpaqueCommand 相比,此方法更符合 DeviceIoControl Windows API,因为输出缓冲区由调用方提供。 此外,与 IMDSPDevice::SendOpaqueCommand 不同,此方法不涉及任何 MAC 检查,并且效率更高。

要求

要求
目标平台 Windows
标头 mswmdm.h
Library Mssachlp.lib

另请参阅

IMDSPDevice3 接口

IMDSPDevice::SendOpaqueCommand

IWMDMDevice3::D eviceIoControl