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
TRUE일 때 쓰기 작업을 나타내고 FALSE인 경우 읽기 작업을 나타냅니다.
반환 값
SRB가 성공적으로 전송된 경우 STATUS_SUCCESS 반환하거나 SRB가 실패하거나 어떤 이유로 보낼 수 없는 경우 적절한 오류 코드를 반환합니다.
설명
체인저 미니클래스 드라이버는 Microsoft Windows XP 이상 운영 체제에서 이 클래스 드라이버 루틴을 호출할 수 있습니다. 미니클래스 드라이버는 이 루틴을 사용하여 classpnp.sys 라이브러리 루틴 ClassSendSrbSynchronous 를 직접 호출하는 대신 포트 드라이버에 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 |