您目前已離線,請等候您的網際網路重新連線

列舉磁碟裝置 Enumdisk1.exe: Enumdisk 範例

重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。

按一下這裡查看此文章的英文版本:264203
結論
Win32 應用程式可以使用 SetupDi API 來列舉所有系統中可用的裝置。Enumdisk1.exe 範例會示範這項技術,藉由列舉不論磁碟類型的所有磁碟裝置。這個範例也會取得裝置傳送 IOCTL 命令來取得介面卡和裝置內容的控制代碼。 進一步,這通訊至裝置藉由傳送小型電腦系統介面 (SCSI) 通過命令以取得 查詢 的資料。
其他相關資訊
下列檔案是可以從 Microsoft 下載中心 」 下載:
發行日期: 九月。 21、 2000

如需有關如何下載 Microsoft 支援檔案的詳細資訊,按一下 [下列面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
119591如何從線上服務取得 Microsoft 支援檔案
Microsoft 已掃描這個檔案有無病毒。Microsoft 使用已張貼檔案的日期中的 [可用的最新病毒偵測軟體。檔案儲存在安全性強化的伺服器上,以避免任何未經授權的更改至檔案。 Enumdisk1.exe 檔案包含下列檔案:
File           Description--------------------------Enumdisk.c     Implements the Win32 application to enumerate the disk devices.Enumdisk.h     Header file for Enumdisk.cSources        DDK build instructionsEnumdisk.htm   The documentation for these samples (this file)Enumdisk.exe   Windows 2000 executable program (Free build)				

裝置列舉型別

Enumdisk1.exe 範例會使用 「 安裝程式類別 GUID_DEVCLASS_DISKDRIVE 全域唯一識別項 (GUID),列舉安裝在系統中的所有磁碟裝置。然後範例會藉由取得登錄屬性取得裝置 ID。

控點以裝置需要從 Win32 應用程式傳送 IOCTLs。藉由開啟裝置使用裝置的介面名稱,可取得裝置控制碼。磁碟類別驅動程式會藉由註冊裝置介面公開這個介面。它會使用裝置註冊的 DiskClassGuid 介面的 GUID。Win32 應用程式可以取得此介面名稱,藉由使用 SetupDi API 具有相同的介面的 GUID。藉由在迴圈中執行這項,您可以取得所有已註冊的磁碟的介面。這個值從磁碟類別驅動程式取得,因為這項技術適用於所有類型的 SCSI]、 [整合裝置電子 (IDE)]、 [通用序列匯流排 (USB),] 與 [電子和電子電機工程師學會 (IEEE) 1394年的協會等的磁碟裝置。

裝置內容

IOCTL_STORAGE_QUERY_PROPERTY 來分別取得 [介面卡] 和 [裝置] 屬性。此 IOCTL 採用 STORAGE_PROPERTY_QUERY 資料結構做為引數。在呼叫此 IOCTL 之前 STORAGE_PROPERTY_IDSTORAGE_QUERY_TYPE 成員必須適當地設定。STORAGE_PROPERTY_ID 可以設定為 [StorageAdapterProperty] 或 [StorageDeviceProperty,且它會判斷要傳回之屬性。\Ntddk\Src\Ntddstor.h 將定義此資料結構和其成員的值。

呼叫這個 StorageAdapterProperty IOCTL 傳回包含如 [匯流排介面卡內容 STORAGE_ADAPTER_DESCRIPTOR 資料結構類型、 傳輸的最大長度、 對齊方式遮罩等等。StorageDeviceProperty 傳回包含裝置類型]、 [廠商識別碼]、 [產品編號] 和 [等等 STORAGE_DEVICE_DESCRIPTOR 資料結構。這項資訊是從各自的連接埠驅動程式取得。請參閱 Windows 2000 DDK 文件,此 IOCTL 和資料結構的相關資訊。

SCSI 通過介面

裝置控制碼取得這種方式也可用來將 SCSI 通過命令傳送到裝置。範例會將 查詢 命令傳送到裝置,以取得 查詢 的資料。如需有關 SCSI 通過介面的詳細 Windows 2000 DDK 中可用的 [SPTI] 範例,請參閱。

建置範例

設定基本的環境變數所需的 「 建置 」 公用程式開發套件程式群組下面按一下 [可用的建置環境已檢查建置環境] 圖示。

變更資料夾,例如包含裝置來源程式碼:
cd c:\enumdisk
輸入 建置-cz,執行建置公用程式,或使用 BLD 巨集。這個方法會叫用的 Microsoft 產生名為記錄檔的產生常式建置 xxx.log 建置 xxx.wrn] 和 [建置 xxx.err,如果有出現任何警告或錯誤。

請注意該 xxx 代表 fre"或"chk"視選擇的環境。如果建置成功,執行 Enumdisk.exe 檔會放在 %TargetPath %資料夾在來源檔案中指定的平台特定子資料夾中。

執行 Enumdisk1.exe 範例

這個範例並不需要任何引數。從命令提示字元視窗執行範例,會列出所有磁碟裝置屬性。
参考
Microsoft Windows 2000 驅動程式開發套件
enumdisk1

警告:本文為自動翻譯

內容

文章識別碼:264203 - 最後檢閱時間:11/01/2006 07:22:45 - 修訂: 2.4

Microsoft Win32 Device Driver Kit for Windows 2000

  • kbmt kbdownload kbfile kbgraphxlinkcritical KB264203 KbMtzh
意見反應