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 |