SRB_GET_STREAM_INFO

类驱动程序发送此请求以获取设备及其支持的流的说明。

返回值

微型驱动程序应将以下其中一项设置为 SRB 中的状态:

STATUS_SUCCESS
指示命令成功完成。

STATUS_IO_DEVICE_ERROR
指示发生了硬件故障。

注释

类驱动程序在 pSrb-CommandData.StreamBuffer > 中传递由微型驱动程序指定大小的缓冲区,以响应类驱动程序的SRB_INITIALIZE_DEVICE请求。 pSrb 指针指向HW_STREAM_REQUEST_BLOCK结构。 另请参阅 PORT_CONFIGURATION_INFORMATION

微型驱动程序使用描述设备及其支持的流的HW_STREAM_DESCRIPTOR填充 CommandData.StreamBuffer。 此缓冲区的大小由 PORT_CONFIGURATION_INFORMATION 结构中的 StreamDescriptorSize 字段中的微型驱动程序指示。

类驱动程序通常只发出一次此请求。 微型驱动程序可能会强制类驱动程序重新发出此请求,以通过调用 StreamClassReenumerateStreams 来更新对受支持流的说明。

当微型驱动程序收到 SRB_GET_STREAM_INFO 命令时,微型驱动程序应:

  1. 检索流标头和流信息数据结构的指针。 例如:

     PHW_STREAM_HEADER pstrhdr =
      (PHW_STREAM_HEADER)&(pSrb->CommandData.StreamBuffer->StreamHeader);
     PHW_STREAM_INFORMATION pstrinfo =
      (PHW_STREAM_INFORMATION)&(pSrb->CommandData.StreamBuffer->StreamInfo);
    
    
  2. 验证缓冲区是否足够大,足以保存返回的数据。

  3. 将信息写入缓冲区。