다음을 통해 공유


ChangerGetElementStatus 함수(mcd.h)

ChangerGetElementStatus 는 IOCTL 코드 IOCTL_CHANGER_GET_ELEMENT_STATUS 사용하여 디바이스 제어 IRP의 디바이스별 측면을 처리합니다.

구문

NTSTATUS ChangerGetElementStatus(
  [in] PDEVICE_OBJECT DeviceObject,
  [in] PIRP           Irp
);

매개 변수

[in] DeviceObject

변경자를 나타내는 디바이스 개체에 대한 포인터입니다.

[in] Irp

IRP에 대한 포인터입니다.

반환 값

ChangerGetElementStatus는 시스템 포트 드라이버 또는 다음 값 중 하나에서 반환된 상태 반환합니다.

STATUS_SUCCESS

STATUS_INFO_LENGTH_MISMATCH

STATUS_INSUFFICIENT_RESOURCES

STATUS_INVALID_DEVICE_REQUEST

STATUS_INVALID_ELEMENT_ADDRESS

볼륨 태그 정보를 지원하지 않는 체인저에 대해 VolumeTagInfo가 설정된 경우 ChangerGetElementStatus는 STATUS_INVALID_PARAMETER 반환합니다.

설명

이 루틴은 필수입니다.

ChangerGetElementStatus는 변경자의 모든 요소에 대한 상태 및 선택적으로 볼륨 태그 정보 또는 특정 형식의 특정 요소 수에 대한 상태 반환합니다.

ChangerGetElementStatus를 호출하기 전에 체인저 클래스 드라이버는 I/O 스택 위치의 입력 및 출력 버퍼 길이를 확인합니다.

Irp-SystemBuffer>는 상태 보고할 요소와 볼륨 태그 정보를 보고할지 여부를 나타내는 입력 매개 변수로 CHANGER_READ_ELEMENT_STATUS 구조를 가리킵니다.

ChangerGetElementStatus는 먼저 CDB를 사용하여 SRB를 빌드하여 요소 상태 명령을 읽고 시스템 포트 드라이버로 전송하여 변경자 요소의 상태 검색합니다. 대부분의 요소 형식에서 ChangerGetElementStatus상태 보고하는 각 요소에 대해 Irp-AssociatedIrp.SystemBuffer>의 CHANGER_ELEMENT_STATUS 구조를 채웁니다. 그러나 ChangerDrive 형식의 일부 요소는 제품 정보 데이터를 반환합니다. 디바이스에서 제품 정보를 제공하는 경우 미니클래스 드라이버는 CHANGER_ELEMENT_STATUS 사용하는 대신 요소 상태 데이터를 CHANGER_ELEMENT_STATUS_EX 형식의 구조로 보고해야 합니다. ChangerGetElementStatus 는 구조체의 Flags 멤버에서 ELEMENT_STATUS_PRODUCT_DATA 설정하여 제품 정보가 있음을 나타내야 합니다.

ChangerGetElementStatus는 I/O 상태 블록의 정보 필드를 변경자 클래스 드라이버로 돌아가기 전에 반환된 바이트 수로 설정합니다.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 mcd.h(Mcd.h, Ntddchgr.h 포함)
IRQL PASSIVE_LEVEL

추가 정보

CHANGER_ELEMENT

CHANGER_ELEMENT_LIST

CHANGER_ELEMENT_STATUS

CHANGER_ELEMENT_STATUS_EX

CHANGER_READ_ELEMENT 상태

ChangerGetStatus

ChangerInitializeElementStatus

ChangerQueryVolumeTags

IOCTL_CHANGER_GET_ELEMENT_STATUS