Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Описание библиотеки SetupAPI.dllСодержание книги
Поиск на нашем сайте Для получения списка аппаратуры и отслеживания аппаратных изменений, как и в предыдущем случае, возможностей.NET недостаточно, и будут использоваться функции из библиотеки SetupAPI.dll. SetupAPI - это системный компонент, содержащий функции для установки драйверов устройств и связывающий пользовательские приложения с устройствами. Основными функциями библиотеки SetupAPI.dll являются: SetupDiGetClassDevs возвращает дескриптор класса устройства, заданного в качестве параметра. Имеет следующий формат: hDevInfoSet:= SetupDiGetClassDevs(ClassGuid, Enumerator, hwndParent, Flags), где hDevInfoSet – имя дескриптора класса; ClassGuid – идентификатор класса. Жесткие диски и USB-накопители имеют глобальный уникальный идентификатор класса ClassGuid = {4d36e967-e325-11ce-bfc1-08002be10318}; Enumerator – системный компонент, определяющий PnP-идентификатор устройства; hwndParent – дескриптор родительского окна; Flags – флаг управления функцией. Может принимать пять значений, По умолчанию используется флаг DIGCF_DEFAULT = 2. SetupDiEnumDeviceInfo возвращает структуру c информацией об очередном устройстве указанного класса. Если функция вернула значение TRUE, то информация извлечена успешно, а если FALSE, то в большинстве случаев это означает, что мы пришли к концу списка. Имеет следующий формат: SetupDiEnumDeviceInfo (hDeviceInfoSet, MemberIndex, DeviceInfoData), где hDeviceInfoSet – дескриптор класса устройств; MemberIndex – порядковый номер в списке устройств указанного класса; DeviceInfoData – возвращаемая структура с информацией об устройстве. SetupDiGetDeviceRegistryProperty позволяет получить PnP свойства устройства. Имеет следующий формат: SetupDiGetDeviceRegistryProperty (hDeviceInfoSet, DeviceInfoData, Property, PropertyRegDataType, PropertyBuffer, PropertyBufferSize, RequiredSize), где hDeviceInfoSet – дескриптор класса устройств; DeviceInfoData – указатель на структуру с информацией об устройстве; Property – параметр, указывающий, какое именно свойство требуется получить. Для получения строки с описанием устройства необходимо указать константу SPDRP_DEVICEDESC (0x00000000) или SPDRP_FRIENDLYNAME (0х0000000С). Для получения идентификатора оборудования (HardwareID) необходимо указать константу SPDRP_HARDWAREID (0x00000001); PropertyRegDataType – указатель на переменную, в которую помещается тип возвращаемых функцией данных; PropertyBuffer – указатель на буфер, в который возвращается значение указанного свойства. Если этот параметр указан как null и PropertyBufferSize указан как 0, то функция возвращает в RequiredSize необходимый размер буфера; PropertyBufferSize – размер буфера для получения значения свойства; RequiredSize – дополнительный параметр для получения размера буфера, если не используется, то null. SetupDiDestroyDeviceInfoList удаляет всю информацию об устройствах указанного класса и очищает память. В качестве параметра этой функции указывается дескриптор класса устройств (hDeviceInfoSet), который предварительно был получен функцией SetupDiGetClassDevs. CM_Get_Parent получает дескриптор родительской ветки в дереве устройств локальной машины. Имеет следующий формат: CM_Get_Parent(pdnDevInst, dnDevInst, ulFlags), где pdnDevInst – возвращаемый указатель на идентификатор родительского устройства; dnDevInst – идентификатор устройства; ulFlags – не используется, должен быть нулём. CM_Get_Device_ID_Size возвращает размер строки идентификатора устройства. Имеет следующий формат: CM_Get_Device_ID_Size (pulLen, dnDevInst, ulFlags), где pulLen – указатель на переменную для записи длины строки; dnDevInst – идентификатор устройства; ulFlags – не используется, должен быть нулем. CM_Get_Device_ID возвращает текстовый идентификатор экземпляра устройства ID. Имеет следующий формат: CM_Get_Device_ID (dnDevInst, Buffer, BufferLen, ulFlags), где dnDevInst – дескриптор устройства; Buffer – указатель на буфер для записи строки идентификатора устройства; BufferLen – длина строки идентификатора устройства; ulFlags – не используется, должен быть нулем. CM_Request_Device_Eject выполняет безопасное извлечение устройства, а если это не возможно, то возвращает информацию об ошибке. Имеет следующий формат: CM_Request_Device_Eject (dnDevInst, pVetoType, pszVetoName, ulNameLength, ulFlags), где dnDevInst – дескриптор устройства; pVetoType – дополнительный параметр для возвращения кода ошибки, если отказано в извлечении устройства; pszVetoName – дополнительный параметр для возвращения текстового описания ошибки, в случае отказа в извлечении устройства; ulNameLength – максимальная длина текстового описания ошибки; ulFlags – не используется, должен быть нулем. Функция CM_Locate_DevNode позволяет получить дескриптор устройства по строке идентификатора. Имеет следующий формат: CM_Locate_DevNode (pdnDevInst, pDeviceID, ulFlags), где pdnDevInst – указатель на возвращаемый дескриптор устройства; pDeviceID – указатель на строку идентификатора устройства; ulFlags – флаг управления функцией. Может принимать четыре значения, в лабораторной работе будет использоваться CM_LOCATE_DEVNODE_NORMAL = 0. Функция CM_Get_DevNode_Status позволяет получить статус устройства, по которому можно определить, можно ли извлечь данное устройство. Если в статусе (pulStatus) возвращается флаг DN_REMOVABLE (0х4000), то устройство можно извлечь. Имеет следующий формат: CM_Get_DevNode_Status (pulStatus, pulProblemNumber, dnDevInst, ulFlags), где pulStatus – указатель на переменную со статусом устройства; pulProblemNumber – указатель на переменную с номером ошибки; dnDevInst – идентификатор устройства, у которого необходимо проверить статус; ulFlags – не используется, должен быть нулем.
|
||
|
Последнее изменение этой страницы: 2021-12-07; просмотров: 411; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.196 (0.006 с.) |