IOCTL_CHANGER_GET_ELEMENT_STATUS IOCTL(ntddchgr.h)
모든 요소의 상태 반환하거나 특정 형식의 지정된 수의 요소 상태 반환합니다.
가능한 요소 형식에 대한 설명은 CHANGER_ELEMENT 참조하세요.
주 코드
입력 버퍼
Irp-AssociatedIrp.SystemBuffer>의 버퍼에는 요소 형식과 상태 반환할 요소 수를 나타내는 CHANGER_READ_ELEMENT_STATUS 데이터가 포함되어 있습니다.
호출자가 CHANGER_READ_ELEMENT_STATUS VolumeTagInfo 멤버를 TRUE로 설정하면 반환되는 요소 상태 볼륨 태그 정보가 포함됩니다.
입력 버퍼 길이
I/O 스택 위치의 Parameters.DeviceIoControl.InputBufferLength는 입력에 대한 매개 변수 버퍼의 크기(바이트)를 나타내며, 이는 = sizeof(CHANGER_READ_ELEMENT_STATUS)여야 >합니다.
출력 버퍼
체인저 미니클래스 드라이버는 Irp-AssociatedIrp.SystemBuffer>에서 버퍼의 데이터를 상태 체인저 요소를 반환합니다. ChangerDrive 형식의 일부 요소는 제품 정보 데이터를 반환합니다. 디바이스에서 제품 정보를 제공하는 경우 미니클래스 드라이버는 요소 상태 데이터를 CHANGER_ELEMENT_STATUS_EX 형식의 구조로 보고합니다. 미니클래스 드라이버는 구조체의 Flags 멤버에 ELEMENT_STATUS_PRODUCT_DATA 설정하여 제품 정보 데이터가 포함되어 있음을 나타냅니다. ChangerDrive 이외의 모든 형식의 요소에 대해 드라이버는 CHANGER_ELEMENT_STATUS 형식의 구조로 데이터를 상태 요소를 보고합니다.
출력 버퍼 길이
Parameters.DeviceIoControl.OutputBufferLength 는 출력에 대한 매개 변수 버퍼의 크기(바이트)를 나타냅니다. ChangerDrive 형식의 요소에 대해 이 값은 >= NumberOfElements * sizeof(CHANGER_ELEMENT_STATUS_EX)여야 합니다. 다른 모든 형식의 요소에 대해 이 값은 >= NumberOfElements * sizeof(CHANGER_ELEMENT_STATUS)여야 합니다.
상태 블록
정보 필드는 반환된 바이트 수로 설정됩니다. 상태 필드는 STATUS_SUCCESS 또는 STATUS_BUFFER_TOO_SMALL, STATUS_INFO_LENGTH_MISMATCH, STATUS_INSUFFICIENT_RESOURCES, STATUS_INVALID_ELEMENT_ADDRESS 또는 STATUS_INVALID_PARAMETER 설정됩니다.
요구 사항
요구 사항 | 값 |
---|---|
헤더 | ntddchgr.h(Ntddchgr.h 포함) |