다음을 통해 공유


PHW_RECEIVE_DEVICE_SRB 콜백 함수(strmini.h)

미니드라이버 제공 루틴은 디바이스 초기화 또는 디바이스 내에서 스트림 열기와 같이 드라이버 전체에 적용되는 클래스 드라이버 요청을 처리합니다.

구문

PHW_RECEIVE_DEVICE_SRB PhwReceiveDeviceSrb;

void PhwReceiveDeviceSrb(
  [in] IN PHW_STREAM_REQUEST_BLOCK SRB
)
{...}

매개 변수

[in] SRB

스트림 요청 블록에 대한 포인터입니다.

반환 값

없음

설명

minidriver는 HW_INITIALIZATION_DATA 구조체HwReceivePacket 멤버에서 이 루틴을 지정합니다. Minidriver는 StreamClassRegisterMinidriver를 호출하여 등록할 때 이 구조를 클래스 드라이버에 전달합니다.

StrMiniReceiveDevicePacket 은 디바이스 초기화 또는 디바이스 내에서 스트림 열기와 같이 드라이버 전체에 적용되는 클래스 드라이버 요청을 처리해야 합니다. 클래스 드라이버는 스트림 요청 블록에 대한 포인터 형식으로 해당 정보를 전달합니다. 클래스 드라이버는 스트림 요청 블록의 일부 항목을 채웁니다. 미니 드라이버는 루틴이 완료되면 클래스 드라이버가 처리를 계속하는 데 사용할 추가 정보를 입력해야 합니다.

요청 처리가 완료되면 미니드라이버가 StreamClassDeviceNotification(DeviceRequestComplete, pSRB-HwDeviceExtension>, pSRB)을 호출하여 구조체를 클래스 드라이버로 다시 전달합니다.

Stream 클래스 SRB 참조에서 관련 SRB 코드에 대한 정보를 참조하세요.

미니드라이버가 요청 처리를 완료하면 pSrb-Status>에서 작업의 반환 상태 입력합니다. 미니 드라이버는 정상적인 성공적인 처리를 위해 STATUS_SUCCESS 입력해야 합니다. 미니드라이버가 해당 명령 값을 지원하지 않는 경우 pSrb-Status>를 STATUS_NOT_IMPLEMENTED 설정해야 합니다. 미니 드라이버가 요청을 완료하지 못하게 하는 디바이스 하드웨어 오류가 있는 경우 pSrb-Status>를 STATUS_IO_DEVICE_ERROR 설정해야 합니다. 특정 상황에서 루틴에서 사용하는 다른 오류 코드는 특정 명령 코드와 함께 위에 나열되어 있습니다.

클래스 드라이버는 읽기 및 쓰기 요청을 StrMiniReceiveStreamDataPacket 루틴에 전달합니다.

미니 드라이버는 다음과 같이 StrMiniReceiveStreamControlPacket 루틴을 등록합니다. 클래스 드라이버가 스트림을 열면 SRB_OPEN_STREAM 요청 블록을 미니드라이버의 StrMiniReceiveDevicePacket 루틴에 전달합니다. 요청 패킷의 StreamObject 멤버는 HW_STREAM_OBJECT 가리킵니다. 미니 드라이버는 StreamObject가 가리키는 구조체의 ReceiveControlPacket 멤버를 미니드라이버의 StrMiniReceiveControlPacket 루틴으로 설정합니다.

요청 처리가 완료되면 미니드라이버가 StreamClassStreamNotification(StreamRequestComplete, pSRB-StreamObject>, pSRB)을 호출하여 구조를 클래스 드라이버로 다시 전달합니다.

Stream 클래스 SRB 참조에서 관련 SRB 코드에 대한 정보를 참조하세요.

미니드라이버가 요청 처리를 완료하면 pSrb-Status>에서 작업의 반환 상태 입력합니다. 미니 드라이버는 정상적인 성공적인 처리를 위해 STATUS_SUCCESS 입력해야 합니다. 미니드라이버가 해당 명령 값을 지원하지 않는 경우 pSrb-Status>를 STATUS_NOT_IMPLEMENTED 설정해야 합니다. 미니 드라이버가 요청을 완료하지 못하게 하는 디바이스 하드웨어 오류가 있는 경우 pSrb-Status>를 STATUS_IO_DEVICE_ERROR 설정해야 합니다. 특정 상황에서 루틴에서 사용하는 다른 오류 코드는 특정 명령 코드와 함께 위에 나열되어 있습니다.

스트림 클래스 드라이버는 미니드라이버의 StrMiniReceiveStreamDataPacket 루틴을 호출하여 특정 스트림에 대한 읽기 및 쓰기 요청을 처리합니다.

미니 드라이버는 다음과 같이 StrMiniReceiveStreamDataPacket 루틴을 등록합니다. 클래스 드라이버가 스트림을 열면 SRB_OPEN_STREAM 요청 블록을 미니드라이버의 StrMiniReceiveDevicePacket 루틴에 전달합니다. 요청 패킷의 StreamObject는 HW_STREAM_OBJECT 가리킵니다. 미니 드라이버는 pSrb-StreamObject> 가 가리키는 구조체의 ReceiveDataPacket 멤버를 미니드라이버의 StrMiniReceiveDataPacket 루틴으로 설정합니다.

요청 처리가 완료되면 미니드라이버가 StreamClassStreamNotification(StreamRequestComplete, pSRB-StreamObject>, pSRB)을 호출하여 구조를 클래스 드라이버로 다시 전달합니다.

Stream 클래스 SRB 참조에서 관련 SRB 코드에 대한 정보를 참조하세요.

미니드라이버가 요청 처리를 완료하면 pSrb-Status>에서 작업의 반환 상태 입력합니다. 미니 드라이버는 정상적인 성공적인 처리를 위해 STATUS_SUCCESS 입력해야 합니다. 미니드라이버가 해당 명령 값을 지원하지 않는 경우 pSrb-Status>를 STATUS_NOT_IMPLEMENTED 설정해야 합니다. 미니 드라이버가 요청을 완료하지 못하게 하는 디바이스 하드웨어 오류가 있는 경우 pSrb-Status>를 STATUS_IO_DEVICE_ERROR 설정해야 합니다. 특정 상황에서 루틴에서 사용하는 다른 오류 코드는 특정 명령 코드와 함께 위에 나열되어 있습니다.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 strmini.h(Strmini.h 포함)