GET_CHANGER_PARAMETERS 結構 (ntddchgr.h)
擷取變更器的特性。
語法
typedef struct _GET_CHANGER_PARAMETERS {
ULONG Size;
USHORT NumberTransportElements;
USHORT NumberStorageElements;
USHORT NumberCleanerSlots;
USHORT NumberIEElements;
USHORT NumberDataTransferElements;
USHORT NumberOfDoors;
USHORT FirstSlotNumber;
USHORT FirstDriveNumber;
USHORT FirstTransportNumber;
USHORT FirstIEPortNumber;
USHORT FirstCleanerSlotAddress;
USHORT MagazineSize;
ULONG DriveCleanTimeout;
ULONG Features0;
ULONG Features1;
UCHAR MoveFromTransport;
UCHAR MoveFromSlot;
UCHAR MoveFromIePort;
UCHAR MoveFromDrive;
UCHAR ExchangeFromTransport;
UCHAR ExchangeFromSlot;
UCHAR ExchangeFromIePort;
UCHAR ExchangeFromDrive;
UCHAR LockUnlockCapabilities;
UCHAR PositionCapabilities;
UCHAR Reserved1[2];
ULONG Reserved2[2];
} GET_CHANGER_PARAMETERS, *PGET_CHANGER_PARAMETERS;
成員
Size
這個結構的大小,以位元組為單位。 設定為 sizeof (GET_CHANGER_PARAMETERS) 。 實際上,此成員表示 miniclass 驅動程式所使用的這個結構版本。
NumberTransportElements
指出變更器中的傳輸元素數目。 針對 SCSI 變更器,這會定義在元素地址頁面中。 這個值幾乎一律為 1,因為大部分變更者都有單一傳輸元素,這可以有一或兩個選擇器機制。 在傳輸上具有兩個選擇器機制的變更程式不能表示為具有兩個傳輸,因為無法個別尋址選擇器。 高階媒體庫可以有雙重和多個傳輸元素來進行容錯。
NumberStorageElements
指出變更器中) 位置 (儲存元素的數目。 針對 SCSI 變更器,這會定義在元素地址頁面中。 此值代表此變更器可用的插槽數目上限,包括卸載式雜誌中是否安裝雜誌的插槽數目上限。 如果 NumberCleanerSlots 為 1, 則 NumberStorageElements 會小於變更器中插槽數目上限的 1。
NumberCleanerSlots
指出變更器中更簡潔的 (位置) 儲存元素數目。 若為 SCSI 變更器,此值不會以模式感知數據回報,因此迷你類別驅動程式必須提供此值。 只有在變更程式的運算符指南將特定位置識別為更簡潔的位置時,miniclass 驅動程式才應該將 NumberCleanerSlots 設定為 1。 如果 NumberCleanerSlots 為 1, 則 FirstCleanerSlotAddress 表示應該插入磁碟驅動器清除器所在位置的以零起始的位址。 如果變更器不支援磁碟驅動器清除,方法是以程序設計方式將清理工具從其位置移至磁碟驅動器,迷你類別驅動程式必須將 NumberCleanerSlots 設定為 0。 NumberCleanerSlots 不得大於 1。
NumberIEElements
指出變更器用於插入和退出媒體的 IEport 元素數目。 針對 SCSI 變更器,這會定義在元素地址頁面中。 IEport 元素不得是儲存元素 (位置) 空間的一部分,而且必須使用MOVE MEDIUM SCSI命令在IEport與位置之間傳輸媒體。 如果變更程式有門,而不是真正的 IEport,迷你類別驅動程式必須將 NumberIEElements 設定為 0。
NumberDataTransferElements
指出變更器中磁碟驅動器) (資料傳輸元素的數目。 針對 SCSI 變更器,這會定義在元素地址頁面中。 不同於 NumberStorageElements,這表示是否實際存在插槽的可能位置總數, NumberDataTransferElements 會指出變更器中實際存在的磁碟驅動器數目。
NumberOfDoors
指出變更器擁有的門數。 若為 SCSI 變更器,此值不會以模式感知數據回報,因此迷你類別驅動程式必須提供此值。 門可讓您一次存取變更器中的所有媒體,不同於 IEport 提供一或多個媒體存取權,但並非所有媒體。 變更器的門可以是實體前門或包含所有媒體的單一雜誌。 如果變更器只支援 IEport 來插入和退出媒體, NumberOfDoors 必須是 0。
FirstSlotNumber
指出變更程式廠商用來識別變更工具中第一個儲存元素 (位置) 的數位,方法是標記雜誌,或在變更器的運算元指南中定義位置編號配置。 FirstSlotNumber 通常是 0 或 1,但它可以是廠商所定義之連續位置位址範圍中的第一個位址。
FirstDriveNumber
指出變更器廠商用來識別變更器中第一個數據傳輸元素 (磁碟驅動器) 給終端使用者的數位。 FirstDriveNumber 通常是 0 或 1,但它可以是廠商所定義之磁碟驅動器地址連續範圍中的第一個位址。
FirstTransportNumber
指出變更器廠商用來識別第一個 (的數位,而且通常只會將變更器中的傳輸元素) 給終端使用者。 FirstTransportNumber 通常是 0 或 1,但它可以是廠商所定義之連續傳輸位址範圍內的第一個位址。
FirstIEPortNumber
指出變更器廠商用來識別第一個 (的數位,通常只會將變更器中的 IEport) 給終端使用者。 FirstIEPortNumber 通常是 0 或 1,但它可以是廠商所定義之 IEport 位址連續範圍中的第一個位址。 如果 NumberIEElements 是 0,FirstIEPortNumber 也必須是 0。
FirstCleanerSlotAddress
指出變更程式廠商用來識別第一個 (的數位,而且只會) 位置位址指派給終端使用者的磁碟驅動器清理工具。 這必須是變更器運算元指南中廠商所定義的值。 例如,如果變更器有 8 個位置編號為 1 到 8,且其操作員指南會將插槽 8 指定為磁碟驅動器清除器插槽, FirstSlotNumber 會是 1, 而 FirstCleanerSlotAddress 會是 8。 如果相同的 8 個位置編號為 0 到 7,FirstSlotNumber 會是 0, 而 FirstCleanerSlotAddress 會是 7。 如果 NumberCleanerSlots 是 0,FirstCleanerSlotAddress 必須是 0。
MagazineSize
指出變更器中卸除式雜誌中的插槽數目。 只有在 Features0中設定CHANGER_CARTRIDGE_MAGAZINE時,這個成員才有效。
DriveCleanTimeout
表示清理預期需要花費兩次的最大秒數。 變更器的磁碟驅動器應該在 DriveCleanTimeout 所指定的一半時間內由更簡潔的磁碟驅動器清除。 例如,如果磁碟驅動器通常會在 300 秒 (5 分鐘) 清除, 則 DriveCleanTimeout 應該設定為 600。
Features0
指出變更程式所支援的功能。 這個成員可以有一或多個下列值位 ORed。
CHANGER_BAR_CODE_SCANNER_INSTALLED
變更器支援條碼讀取器,並已安裝讀取器。 除非一律安裝變更器的條碼讀取器,否則迷你類別驅動程式不得硬式編碼此旗標。 如果條碼讀取器是選擇性的,迷你類別驅動程式必須判斷讀取器是否已實際安裝並據以設定旗標。
CHANGER_INIT_ELEM_STAT_WITH_RANGE
變更器可以初始化指定範圍內的專案。 若為 SCSI 變更器,此旗標會指出變更器是否支援 INITIALIZE ELEMENT STATUS WITH RANGE SCSI 命令。
CHANGER_CLOSE_IEPORT
變更器具有 IEport,而且可以程式設計方式撤銷 IEport。
CHANGER_OPEN_IEPORT
變更器具有 IEport,而且可以程式設計方式擴充 IEport。
CHANGER_STATUS_NON_VOLATILE
變更器會針對項目狀態資訊使用非Volatiatile 記憶體。
CHANGER_EXCHANGE_MEDIA
支援 EXCHANGE MEDIUM SCSI 命令,方法是一次處理兩個磁碟區,或使用其他變更器元素來模擬這項功能。
CHANGER_CLEANER_SLOT
表示變更器具有指定給清理器的特定位置。 如果設定此旗標, NumberCleanerSlots 必須是一個, FirstCleanerSlotAddress 必須指定清除器位置的位址。 只有在設定CHANGER_DRIVE_CLEANING_REQUIRED且重設CHANGER_CLEANER_OPS_NOT_SUPPORTED時,才能設定此位。
CHANGER_LOCK_UNLOCK
變更者的門、IEport 或鍵盤可以透過程序設計方式鎖定或解除鎖定。 如果設定此旗標, LockUnlockCapabilities 會指出哪些元素可以鎖定或解除鎖定。
CHANGER_CARTRIDGE_MAGAZINE
變更器會針對部分或所有儲存位置使用抽取式雜誌。
CHANGER_MEDIUM_FLIP
變更器的傳輸元素支援翻轉 (旋轉) 媒體。 若為 SCSI 變更器,此旗標會反映傳輸幾何參數頁面中的旋轉位。
CHANGER_POSITION_TO_ELEMENT
變更器可以將傳輸定位至特定目的地。 若為 SCSI 變更器,此旗標會指出變更器是否支援 POSITION TO ELEMENT SCSI 命令。 如果設定此旗標, PositionCapabilities 會指出可放置傳輸的專案。
CHANGER_REPORT_IEPORT_STATE
變更器可以報告 IEport 中是否有媒體。 這類變更程式必須在 IEport 中具有感測器,才能偵測媒體是否存在。
CHANGER_STORAGE_DRIVE
變更器可以使用磁碟驅動器作為獨立的儲存元素;也就是說,它可以將媒體儲存在磁碟驅動器中,而不需讀取它。 針對 SCSI 變更器,此旗標會反映裝置功能頁面中 DT 位的狀態。
CHANGER_STORAGE_IEPORT
變更器可以使用 IEport 作為獨立的儲存元素。 針對 SCSI 變更器,此旗標會反映裝置功能頁面中 I/E 位的狀態。
CHANGER_STORAGE_SLOT
變更器可以使用位置做為媒體的獨立儲存元素。 若為 SCSI 變更器,此旗標會反映裝置功能頁面中 ST 位的狀態。 位置是媒體的一般儲存位置,因此變更器必須支援這項功能。
CHANGER_STORAGE_TRANSPORT
變更器可以使用傳輸作為獨立的儲存專案。 若為 SCSI 變更器,此旗標會反映裝置功能頁面中 MT 位的狀態。
CHANGER_DRIVE_CLEANING_REQUIRED
表示變更器的磁碟驅動器可能會定期報告表示磁碟驅動器需要清除的感知碼。
CHANGER_PREDISMOUNT_EJECT_REQUIRED
變更器需要透過大量儲存驅動程式發出的明確命令, (磁帶、磁碟或CD-ROM,例如) 從磁碟驅動器退出媒體,變更器才能將媒體從磁碟驅動器移至插槽。 如果變更程序自動退出媒體,迷你類別驅動程式應該清除此旗標。
CHANGER_CLEANER_ACCESS_NOT_VALID
當傳輸元素包含清理器時,數據傳輸專案CHANGER_ELEMENT_STATUS結構中的ELEMENT_STATUS_ACCESS旗標無效。
CHANGER_DRIVE_EMPTY_ON_DOOR_ACCESS
變更器要求所有磁碟驅動器都必須是空的 (卸除) ,才能透過其門存取磁碟驅動器。 如果變更器具有可能受到操作員存取變更器內部之 存取權的靜態敏感磁碟驅動器,或者當操作員嘗試實際開啟門時,變更程式會自動從其磁碟驅動器退出媒體,則迷你類別驅動程式應該設定此旗標。
CHANGER_VOLUME_IDENTIFICATION
變更器支援磁碟區識別。 對於 SCSI 變更器,此旗標會指出變更器是否支援 SEND VOLUME TAG 和 REQUEST VOLUME ELEMENT ADDRESS SCSI 命令。
CHANGER_VOLUME_SEARCH
變更器可以搜尋磁碟區資訊。 若為 SCSI 變更器,此旗標會指出變更器是否支援支援 SEND VOLUME TAG SCSI 命令,且傳送動作代碼為 TRANSLATE。
CHANGER_VOLUME_ASSERT
變更器可以驗證磁碟區資訊。 若為 SCSI 變更器,此旗標會指出變更器是否支援 SEND VOLUME TAG SCSI 命令,以及 ASSERT 的傳送動作代碼。
CHANGER_VOLUME_REPLACE
變更器可以取代磁碟區資訊。 若為 SCSI 變更器,此旗標會指出變更器是否支援 SEND VOLUME TAG SCSI 命令,並使用 REPLACE 的傳送動作代碼。
CHANGER_VOLUME_UNDEFINE
變更器可以清除現有的磁碟區資訊。 對於 SCSI 變更器,此旗標會指出變更器是否支援支援 SEND VOLUME TAG SCSI 命令,且傳送動作代碼為 UNDEFINE。
CHANGER_SERIAL_NUMBER_VALID
GetProductData 所報告的序號對於此類型的所有變更者都是有效且唯一的。 序號不保證在廠商和產品線之間是唯一的。 如果變更器的序號根據此定義是唯一的,迷你類別驅動程式應該設定此旗標,並在 CHANGER_PRODUCT_DATA 中將 SerialNumber 設定為序號。
CHANGER_PREMOUNT_EJECT_REQUIRED
變更器需要透過大量儲存驅動程式發出的明確命令,才能退出磁碟驅動器機制,變更程式才能將媒體從插槽移至磁碟驅動器。 例如,具有CD-ROM磁碟驅動器的變更器可能需要將匣呈現給機器人傳輸,以便在掛接作業期間將媒體片段載入匣。 如果變更器自動退出機制,迷你類別驅動程式應該清除此旗標。
CHANGER_DEVICE_REINITIALIZE_CAPABLE
變更程式可以重新調整其傳輸元素,以響應明確的命令。 changer 類別驅動程式會呼叫 ChangerReinitializeUnit 來起始重新自定義。
CHANGER_KEYPAD_ENABLE_DISABLE
變更器按鍵板可以透過程序設計方式啟用和停用。
CHANGER_RESERVED_BIT
保留以指出 Features1 旗標。
Features1
指出變更器所支援的其他功能。 這個成員可以同時有一或多個下列值位 ORed。
CHANGER_PREDISMOUNT_ALIGN_TO_SLOT
表示傳輸必須先移至目的地位置,再將媒體從磁碟驅動器移至該位置。 如果已設定,則必須重設位CHANGER_PREDISMOUNT_ALIGN_TO_DRIVE。
CHANGER_PREDISMOUNT_ALIGN_TO_DRIVE
表示傳輸必須先移至磁碟驅動器,再將媒體從磁碟驅動器移至插槽。 如果已設定,則必須重設位CHANGER_PREDISMOUNT_ALIGN_TO_SLOT。
CHANGER_CLEANER_AUTODISMOUNT
表示變更器會在清除完成後,自動將清除器移回其原始位置。 只有在設定CHANGER_DRIVE_CLEANING_REQUIRED且重設CHANGER_CLEANER_OPS_NOT_SUPPORTED時,才能設定此位。
CHANGER_TRUE_EXCHANGE_CAPABLE
裝置可以一次操作兩個磁碟區,而不需使用其他變更器元素。
CHANGER_SLOTS_USE_TRAYS
變更程式會在其插槽中使用抽取式匣,這需要將媒體放在匣中,而匣會移至所需的位置。
CHANGER_RTN_MEDIA_TO_ORIGINAL_ADDR
指出將磁碟區從磁碟驅動器移至插槽時,磁碟區必須回到先前移至磁碟驅動器所在的相同位置。
CHANGER_CLEANER_OPS_NOT_SUPPORTED
表示變更器的傳輸無法由變更器驅動程式上方的軟體以程序設計方式命令,將清理器移至已變更的磁碟驅動器。 只有在設定CHANGER_DRIVE_CLEANING_REQUIRED位時,才能設定此位。 如果設定此位,則必須重設CHANGER_CLEANER_AUTODISMOUNT和CHANGER_CLEANER_SLOT。
CHANGER_IEPORT_USER_CONTROL_OPEN
變更程式需要用戶手動開啟已關閉的 IEport。
CHANGER_IEPORT_USER_CONTROL_CLOSE
變更程式需要使用者手動關閉開啟的 IEport。
CHANGER_MOVE_EXTENDS_IEPORT
每當發出命令以將媒體移至 IEport 時,變更器會自動擴充匣。
CHANGER_MOVE_RETRACTS_IEPORT
每當發出命令以從 IEport 行動媒體時,變更器會自動撤銷匣。
MoveFromTransport
指出變更器是否支援將媒體片段從傳輸專案移至另一個傳輸元素、儲存位置、IEport 或磁碟驅動器。 若為 SCSI 變更器,這會定義於裝置功能頁面中。 傳輸通常不是移動或交換媒體的來源或目的地。
呼叫端可以使用下列遮罩來判斷變更者是否可以將媒體移至指定的專案。
CHANGER_TO_TRANSPORT
變更器可以從指定的專案執行作業到傳輸。
CHANGER_TO_SLOT
變更器可以從指定的項目執行作業到儲存位置。
CHANGER_TO_IEPORT
變更器可以從指定的項目執行作業到 IEport。
CHANGER_TO_DRIVE
變更器可以從指定的專案執行作業到磁碟驅動器。
MoveFromSlot
指出變更器是否支援將媒體從儲存位置移至傳輸元素、另一個儲存位置、IEport 或磁碟驅動器。 呼叫端可以使用 MoveFromTransport 底下所述的遮罩來判斷變更器是否支持移動。
MoveFromIePort
指出變更器是否支援將媒體從 IEport 移至傳輸專案、儲存位置、另一個 IEport 或磁碟驅動器。 若為 SCSI 變更器,這會定義於裝置功能頁面中。 呼叫端可以使用 MoveFromTransport 底下所述的遮罩來判斷變更器是否支持移動
MoveFromDrive
指出變更器是否支援將媒體從磁碟驅動器移至傳輸專案、儲存位置、IEport 或其他磁碟驅動器。 呼叫端可以使用 MoveFromTransport 底下所述的遮罩來判斷變更器是否支持移動。
ExchangeFromTransport
指出變更器是否支援在傳輸專案與另一個傳輸專案、儲存位置、IEport 或磁碟驅動器之間交換媒體。 呼叫端可以使用 MoveFromTransport 底下所述的遮罩來判斷變更器是否支持交換。
ExchangeFromSlot
指出變更器是否支援在儲存位置與傳輸專案、另一個儲存位置、IEport 或磁碟驅動器之間交換媒體。 呼叫端可以使用 MoveFromTransport 底下所述的遮罩來判斷變更器是否支持交換。
ExchangeFromIePort
指出變更器是否支援在 IEport 與傳輸專案、儲存位置、另一個 IEport 或磁碟驅動器之間交換媒體。 呼叫端可以使用 MoveFromTransport 底下所述的遮罩來判斷變更器是否支持交換。
ExchangeFromDrive
指出變更器是否支援在磁碟驅動器與傳輸專案、儲存位置、IEport 或其他磁碟驅動器之間交換媒體。 呼叫端可以使用 MoveFromTransport 底下所述的遮罩來判斷變更器是否支持交換。
LockUnlockCapabilities
指出可透過程式設計方式鎖定或解除鎖定變更程序的專案。 只有在 Features0中設定CHANGER_LOCK_UNLOCK時,此成員才有效。
呼叫端可以使用下列遮罩來判斷變更者是否可以鎖定或解除鎖定特定元素。
LOCK_UNLOCK_IEPORT
變更器可以鎖定或解除鎖定其 IEport () 。
LOCK_UNLOCK_DOOR
變更器可以鎖定或解除鎖定其門。
LOCK_UNLOCK_KEYPAD
變更程式可以鎖定或解除鎖定其鍵盤。
PositionCapabilities
指出變更器可以放置其傳輸的專案。 呼叫端可以使用 MoveFromTransport 底下所述的遮罩來判斷變更器是否支援將傳輸定位至特定專案。 只有在 Features0中設定CHANGER_POSITION_TO_ELEMENT時,此成員才有效。
Reserved1[2]
保留供未來使用。
Reserved2[2]
保留供未來使用。
備註
GET_CHANGER_PARAMETERS 包含變更器的參數。 changer miniclass 驅動程式會在變更程式類別驅動程式要求時配置並填入此結構。
規格需求
需求 | 值 |
---|---|
標頭 | ntddchgr.h |