共用方式為


ChangerGetElementStatus 函式 (mcd.h)

ChangerGetElementStatus 使用 IOCTL 程式代碼處理裝置控制 IRP 的裝置特定層面 IOCTL_CHANGER_GET_ELEMENT_STATUS

語法

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 會傳回狀態,並選擇性地傳回 changer 中所有元素的磁碟區標記資訊,或特定類型之特定項目數目的狀態。

changer 類別驅動程式會先檢查 I/O 堆疊位置中的輸入和輸出緩衝區長度,再呼叫 ChangerGetElementStatus

Irp->SystemBuffer 指向 CHANGER_READ_ELEMENT_STATUS 結構做為輸入參數,指出要報告狀態的專案,以及是否報告磁碟區卷標資訊。

ChangerGetElementStatus 會先建置具有 CDB 的 SRB 來讀取項目狀態命令,並將它傳送至系統埠驅動程式,以擷取 changer 元素的狀態。 針對大部分的元素類型,ChangerGetElementStatus 然後在 Irp->AssociatedIrp.SystemBuffer 填入其報告狀態的每個元素的 CHANGER_ELEMENT_STATUS 結構。 不過,ChangerDrive 類型的某些元素 傳回產品信息數據。 如果裝置提供產品資訊,迷你類別驅動程式必須報告類型為 CHANGER_ELEMENT_STATUS_EX 的元素狀態數據,而不是使用 CHANGER_ELEMENT_STATUS。 ChangerGetElementStatus 必須藉由在 結構的 旗標 成員中設定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