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) 。
輸出緩衝區
changer miniclass 驅動程式會在 Irp-AssociatedIrp.SystemBuffer> 的緩衝區中傳回 changer 元素狀態數據。 ChangerDrive 類型的某些元素會傳回產品信息數據。 如果裝置提供產品資訊,迷你類別驅動程式將會在類型 為 CHANGER_ELEMENT_STATUS_EX的結構中報告專案狀態數據。 miniclass 驅動程式會在 結構的 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) |