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 |