다음을 통해 공유


ChangerClassSendSrbSynchronous 함수(mcd.h)

ChangerClassSendSrbSynchronous 루틴은 SRB를 지정된 디바이스에 동기적으로 보냅니다.

통사론

NTSTATUS ChangerClassSendSrbSynchronous(
  [in] PDEVICE_OBJECT      DeviceObject,
  [in] PSCSI_REQUEST_BLOCK Srb,
  [in] PVOID               Buffer,
  [in] ULONG               BufferSize,
  [in] BOOLEAN             WriteToDevice
);

매개 변수

[in] DeviceObject

대상 디바이스의 기능 디바이스 개체에 대한 포인터입니다.

[in] Srb

대상 디바이스로 보낼 부분적으로 초기화된 SRB(SCSI 요청 블록)에 대한 포인터입니다.

[in] Buffer

Srb->DataBuffer 가리킬버퍼의 주소를 지정합니다. ChangerClassSendSrbSynchronous 이 버퍼에 대한 MDL을 만들고 SRB IRP의 대상 디바이스 드라이버에 전달합니다.

[in] BufferSize

버퍼의 길이(바이트)를 지정합니다.

[in] WriteToDevice

FALSE 때 TRUE 및 읽기 작업을 쓰기 작업을 나타냅니다.

반환 값

SRB가 성공적으로 전송된 경우 또는 SRB가 실패하거나 어떤 이유로 전송할 수 없는 경우 적절한 오류 코드인 경우 STATUS_SUCCESS 반환합니다.

발언

체인저 미니클래스 드라이버는 Microsoft Windows XP 이상 운영 체제에서 이 클래스 드라이버 루틴을 호출할 수 있습니다. Miniclass 드라이버는 ClassSendSrbSynchronous 직접classpnp.sys 라이브러리 루틴을 호출하는 대신 이 루틴을 사용하여 포트 드라이버에 SRB를 보내야 합니다. classpnp.sys WDK(Windows 드라이버 키트)와 함께 제공되지만 지원되는 API는 아니며 이 라이브러리의 루틴을 직접 호출하는 드라이버는 향후 릴리스에서 제대로 작동하지 않을 수 있습니다.

ChangerClassSendSrbSynchronous 부분적으로 초기화된 SRB의 초기화를 완료하고 대상의 디바이스 개체에 표시된 값으로 SRB의 플래그를 설정합니다. ChangerClassSendSrbSynchronous 대상 디바이스에 SRB를 전달하는 데 사용되는 IRP를 만들고, IRP를 보낸 다음, IRP의 완료를 처리합니다.

IRP가 실패하고 감지 요청 데이터가 IRP를 다시 시도해야 함을 나타내는 경우 ChangerClassSendSrbSynchronous IRP를 다시 보냅니다.

요구 사항

요구
대상 플랫폼 바탕 화면
헤더 mcd.h(Mcd.h, Ntddchgr.h 포함)
라이브러리 Mcd.lib

참고 항목

SCSI_REQUEST_BLOCK