Delphi - перечисление номеров портов ввода-вывода SATA в Windows - PullRequest
0 голосов
/ 21 марта 2009

Новый для вас. Я готов помочь другому программисту перенести его программу с C # на Delphi. Я не могу по-настоящему прочитать C #, и при этом он не прислал мне фактический источник, поэтому из обсуждения я думаю, что я собираюсь решить большую часть этого с одной функции за один раз.

Мне нужно иметь возможность получить номера портов ввода-вывода для всех устройств SATA (я думаю, я имею в виду устройства), подключенных к системе. Я знаю, что WMI не сделает этого, поэтому я не уверен, с чего начать. Я знаю, что версия C # этого приложения использует класс C #, который в основном анализирует реестр. Я всегда был в восторге от непосредственного чтения из реестра. Я чувствую, что получение информации из Windows API или связанных с ней является более надежным между версиями Windows, если это возможно.

1 Ответ

2 голосов
/ 21 марта 2009

Если оригинал читает реестр, а вы портируете функцию, чтение реестра выглядит для меня как совершенно правильное решение?

Кстати, у Delphi есть класс TRegistry из реестра реестра.pas. Вы можете использовать это для чтения и записи реестра. По умолчанию вы запрашиваете все права (чтение / запись ..) в Vista, это может быть проблемой, поэтому обязательно открывайте только для чтения, если вы планируете только чтение.

Ключевые значения:

KEY_READ
KEY_WRITE 
KEY_EXECUTE
KEY_ALL_ACCESS

Это наборы, основанные на базовых значениях:

KEY_QUERY_VALUE       
KEY_SET_VALUE         
KEY_CREATE_SUB_KEY    
KEY_ENUMERATE_SUB_KEYS
KEY_NOTIFY     
KEY_CREATE_LINK
KEY_WOW64_32KEY
KEY_WOW64_64KEY
KEY_WOW64_RES
...