다음을 통해 공유


SRB_GET_STREAM_INFO

클래스 드라이버는 디바이스 및 지원하는 스트림에 대한 설명을 얻기 위해 이 요청을 보냅니다.

반환 값

미니 드라이버는 SRB의 상태 다음 중 하나를 설정해야 합니다.

STATUS_SUCCESS
명령이 성공적으로 완료되었음을 나타냅니다.

STATUS_IO_DEVICE_ERROR
하드웨어 오류가 발생했음을 나타냅니다.

의견

클래스 드라이버는 클래스 드라이버의 SRB_INITIALIZE_DEVICE 요청에 대한 응답으로 미니 드라이버에서 지정한 크기의 pSrb-CommandData.StreamBuffer > 에 버퍼를 전달합니다. pSrb 포인터는 HW_STREAM_REQUEST_BLOCK 구조를 가리킵니다. PORT_CONFIGURATION_INFORMATION 참조하세요.

미니드라이버가 CommandData.StreamBuffer 를 지원하는 디바이스 및 스트림을 설명하는 HW_STREAM_DESCRIPTOR 채웁니다. 이 버퍼의 크기는 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. 버퍼에 정보를 씁니다.