STOR_DEVICE_CAPABILITIES 結構 (storport.h)
STOR_DEVICE_CAPABILITIES結構會將裝置功能報告給 Storport 驅動程式,以回應 SCSI 要求區塊中的功能查詢, (SRB) 具有函式的 SRB_FUNCTION_PNP。STOR_DEVICE_CAPABILITIES是包含與存儲設備相關成員之DEVICE_CAPABILITIES結構的子集。
語法
typedef struct _STOR_DEVICE_CAPABILITIES {
USHORT Version;
ULONG DeviceD1 : 1;
ULONG DeviceD2 : 1;
ULONG LockSupported : 1;
ULONG EjectSupported : 1;
ULONG Removable : 1;
ULONG DockDevice : 1;
ULONG UniqueID : 1;
ULONG SilentInstall : 1;
ULONG SurpriseRemovalOK : 1;
ULONG NoDisplayInUI : 1;
} STOR_DEVICE_CAPABILITIES, *PSTOR_DEVICE_CAPABILITIES;
成員
Version
指定結構的版本。 設定為 Storport STOR_DEVICE_CAPABILITIES_EX_VERSION_1。
DeviceD1
指定裝置硬體是否支援 D1 電源狀態。 迷你埠驅動程式將此位設定為 0。
DeviceD2
指定裝置硬體是否支援 D2 電源狀態。 迷你埠驅動程式將此位設定為 0。
LockSupported
指定裝置是否支援防止裝置退出的實體裝置鎖定。 此成員與退出 LUN 或單位裝置有關。
EjectSupported
指定當系統處於 PowerSystemWorking 狀態時,裝置是否支援軟體控制的裝置退出。 此成員與退出 LUN 或單位裝置有關。
Removable
指定是否可以從裝置的立即父代動態移除。 如果 卸除式 設定為 TRUE,則裝置不屬於與其父系相同的實體物件。
如果 卸除式 設定為 TRUE,則除非 SurpriseRemovalOK 也設定為 TRUE,否則裝置會顯示在 [解壓縮] 或 [退出硬體] 程式中。
DockDevice
指定裝置是否為停駐周邊。
UniqueID
指定裝置的實例識別碼是否為全系統的唯一標識符。 如果實例標識碼只在總線的範圍內是唯一的,則此位會清楚。
SilentInstall
指定 裝置管理員 是否應該隱藏所有安裝對話方塊,但必要對話框除外,例如「找不到相容的驅動程式」。
SurpriseRemovalOK
指定裝置的迷你埠驅動程式是否可以在 Storport 傳送SRB_FUNCTION_PNP與 StorRemoveDevice 做為 SCSI_PNP_REQUEST_BLOCK 結構中的 PnPAction 之前移除裝置的情況。 如果 SurpriseRemovalOK 設定為 TRUE,則不論其驅動程式所在的狀態為何,都可以安全地從其立即父系中移除裝置。
NoDisplayInUI
請勿在使用者介面中顯示裝置。 如果設定此位,即使裝置存在但無法啟動,裝置永遠不會顯示在使用者介面中。 迷你埠驅動程式不會設定此位。
備註
當迷你埠驅動程式在其 HwStorStartIo 例程中收到 SRB,其中 SRB 函式SRB_FUNCTION_PNP,SRB 會格式化為 SCSI_PNP_REQUEST_BLOCK 結構。 如果 SRB 的 PnPAction 成員是 StorQueryCapabilities,迷你埠可以在 SRB 的 DataBuffer 成員中傳回STOR_DEVICE_CAPABILITIES結構。
Storport 會將這個結構傳送至迷你埠,並將所有成員初始化為 0。 傳回時,只會使用此結構中的 [卸除式 ] 字段。
從 Windows 8 開始,迷你埠應該使用 STOR_DEVICE_CAPABILITIES_EX 結構來指出支援其他功能。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 從 Windows Vista 開始提供。 |
標頭 | storport.h (包括 Storport.h、Minitape.h、Srb.h) |