2017-04-11 67 views
3

我正在研究如何在C中編寫Windows中的iSCSI啓動程序(如Open-iSCSI(Linux)或Starwind iSCSI啓動程序(Windows))。我以前編寫過一個iSCSI目標,現在我正在學習與之相反的東西。我已經編碼了主要發起者目標消息(登錄,讀/寫等)。我現在面臨的問題是如何將我的iSCSI啓動程序連接到Windows中的SCSI子系統,它負責發送哪個lba讀取/寫入,發送查詢,modesense信息。我以前看過其他開放源代碼啓動器,如Open-iSCSI,它是一個內核模式驅動程序,我猜測它直接與Linux中的SCSI子系統連接,我不知道如何在Windows中執行操作。如何將我的iSCSIinitiator連接到Windows中的scsi子系統

有人建議SCSI微型端口驅動程序,我正在試着去研究。

有人能指出我正確的方向嗎?有沒有一個API能夠將操作系統與SCSI定義的SCSI命令聯繫起來?

您可能認爲我正在重新發明輪子,因爲Windows上已經有內置的iSCSI啓動器,但是有一些已刪除啓動器的精簡版Windows,並且還想了解如何創建自定義iSCSI啓動器。

回答

2

我建議推送StarWind傢伙,讓他們遠離iSCSI啓動器進行維護/擴展。它被寫成單片SCSI端口(超快!),並且不被Microsoft支持,因此MSFT不會接受它用於生產AS IS。這裏ping通他們:

https://forums.starwindsoftware.com/viewforum.php?f=4&sid=a76a36e594767d2d6e8cb0d97a9c2f91

或者您需要檢查什麼叫做「虛擬StorPort的微型端口」,因爲它是虛擬存儲驅動程序設計的「福地」的微軟。請參閱:

https://code.msdn.microsoft.com/windowshardware/WDKStorPortVirtualMiniport-973650f6

這應該是一個良好的開端對你來說,從開放的iSCSI移植的iSCSI堆棧是不平凡的,但可行的:)

祝你好運!

+0

試過看這個......是這樣的O.S .-> WDKStorPortVirtualMiniport-> iSCSI Initiator?調用啓動函數的部分在哪裏?不過,這可能是我正在尋找的。謝謝。 –

+1

iSCSI啓動器示例是關於通過公共API管理MSFT iSCSI啓動器的,從我的理解您要更換MSFT而不是與他們的代碼進行「交談」... – BaronSamedi1958

相關問題