ChangerMoveMedium 함수(mcd.h)
ChangerMoveMedium은 IOCTL 코드 IOCTL_CHANGER_MOVE_MEDIUM 사용하여 디바이스 제어 IRP의 디바이스별 측면을 처리합니다.
구문
NTSTATUS ChangerMoveMedium(
[in] PDEVICE_OBJECT DeviceObject,
[in] PIRP Irp
);
매개 변수
[in] DeviceObject
변경자를 나타내는 디바이스 개체에 대한 포인터입니다.
[in] Irp
IRP에 대한 포인터입니다.
반환 값
ChangerMoveMedium은 시스템 포트 드라이버에서 반환하는 상태 반환하거나 다음 값 중 하나를 반환합니다.
STATUS_SUCCESS
STATUS_DESTINATION_ELEMENT_FULL
STATUS_INVALID_ELEMENT_ADDRESS
STATUS_INVALID_DEVICE_REQUEST
STATUS_INVALID_PARAMETER
STATUS_INSUFFICIENT_RESOURCES
STATUS_SOURCE_ELEMENT_EMPTY
설명
이 루틴은 필수입니다.
ChangerMoveMedium은 미디어 조각을 한 요소에서 다른 요소로 이동합니다.
ChangerMoveMedium을 호출하기 전에 체인저 클래스 드라이버는 I/O 스택 위치의 입력 버퍼 길이를 확인합니다. Irp-SystemBuffer>는 전송 요소, 원본, 대상 및 매체를 대칭 이동할지 여부를 나타내는 CHANGER_MOVE_MEDIUM 구조를 가리킵니다.
ChangerMoveMedium은 먼저 전송, 원본 및 대상 요소 주소가 유효한지 확인한 다음, 0부터 시작하는 요소 주소를 디바이스별 주소로 변환합니다. 그런 다음 CDB를 사용하여 SRB를 빌드하여 미디어 부분을 이동하고 시스템 포트 드라이버로 보냅니다.
ChangerMoveMedium은 변경자 클래스 드라이버로 돌아가기 전에 I/O 상태 블록의 정보 필드를 sizeof(CHANGER_MOVE_MEDIUM)로 설정합니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 데스크톱 |
머리글 | mcd.h(Mcd.h, Ntddchgr.h 포함) |
IRQL | PASSIVE_LEVEL |