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

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

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

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