Форум: "Система";
Текущий архив: 2002.05.13;
Скачать: [xml.tar.bz2];
ВнизКто может подкмнуть описание ф-ции SetupDiChangeState? Найти похожие ветки
← →
yuger (2002-02-11 10:24) [0]Я где-то нарыл описание на С++:
WINSETUPAPI BOOL WINAPI
SetupDiChangeState(
IN HDEVINFO DeviceInfoSet,
IN OUT PSP_DEVINFO_DATA DeviceInfoData
);
К сожалению не смог найти описание
HDEVINFO и OUT PSP_DEVINFO_DATA
Еще нашел:
Как, например, сетевую карту "отключить в данной конфигурации" через Win32 API?
Мой компьютеp->Свойства->Устpойства->NetCard->Отключено в данной конфигypации можно сделать программно:
Если в Win95 DiChangeState(lpdi, DICS_DISABLE, DICS_FLAG_CONFIGSPECIFIC); - только yчтите, что setupx.dll 16-битовая
Если в 98 или nt SetupDiChangeState
Может кто знает как с ней работать в Delphi.
Ее описание на Delphi.
Эта функция включает/отключает устройство из конфигурации.
← →
VuDZ (2002-02-11 11:10) [1]
//
// Define type for reference to device information set
//
typedef PVOID HDEVINFO;
т.е. HDEVINFO - прсто указатель на что угодно
//
// Device information structure (references a device instance
// that is a member of a device information set)
//
typedef struct _SP_DEVINFO_DATA {
DWORD cbSize;
GUID ClassGuid;
DWORD DevInst; // DEVINST handle
ULONG_PTR Reserved;
} SP_DEVINFO_DATA, *PSP_DEVINFO_DATA;
PSP_DEVINFO_DATA - указатель на структуру _SP_DEVINFO_DATA
← →
yuger (2002-02-12 09:53) [2]Спасибо за информацию.
Меня это интересует в контексте
вкл/откл устройства.
В каких полях и какие значения надо для включения и выключения
выставлять?
Заранее спасибо.
← →
VuDZ (2002-02-12 14:57) [3]я с этим никогда не работал но есть такие мысли, сюдя по полям:
HDEVINFO = указатель на открытый каким-либо образом девайс
DWORD cbSize = размер структуры
GUID ClassGuid = GUID девайса - брать из реестра или другими методами
DWORD DevInst = бес понятия
ULONG_PTR Reserved = указатель на 32х переменную. т.к. reserved, я обычно в таких случаях пишу NULL, т.е. nil на паскале.
Попробуй поискать с инете, где-то да должны быть описания
← →
VuDZ (2002-02-14 13:00) [4]
(C)Галина
void DisableLPT(TECP *ECP)
{
SP_DEVINFO_DATA DevInfoData;
DevInfoData.cbSize = sizeof(SP_DEVINFO_DATA);
SP_PROPCHANGE_PARAMS DevChngParams;
DevChngParams.ClassInstallHeader.cbSize = sizeof(SP_CLASSINSTALL_HEADER);
DevChngParams.ClassInstallHeader.InstallFunction = DIF_PROPERTYCHANGE;
DevChngParams.StateChange = DICS_DISABLE;
DevChngParams.Scope = DICS_FLAG_GLOBAL;
DevChngParams.HwProfile = 0;
//char PropertyBuffer[5000];
GUID ClassGuid = {0x4D36E978, 0xE325, 0x11CE, 0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18};
//GUID ClassGuid = {0x78A1C341, 0x4539, 0x11D3, 0xB8, 0x8D, 0x00, 0xC0, 0x4F, 0xAD, 0x56, 0x71};
bool t;
DevInfo = SetupDiGetClassDevs(
&ClassGuid,
NULL,
NULL,
0
);
t = INVALID_HANDLE_VALUE!=DevInfo;
wchar_t WideCharStr[1000];
MultiByteToWideChar(
CP_ACP,
NULL,
ECP->DeviceName,
-1,
WideCharStr,
1000
);
t = SetupDiOpenDeviceInfo(
DevInfo,
ECP->DeviceName,
NULL,
0,
&DevInfoData
);
//DWORD RequiredSize = sizeof(DevChngParams);
t = SetupDiSetClassInstallParams(
DevInfo,
&DevInfoData,
(PSP_CLASSINSTALL_HEADER)&DevChngParams,
sizeof(DevChngParams)
);
// GetError();
t = SetupDiCallClassInstaller(
DIF_PROPERTYCHANGE,
DevInfo,
&DevInfoData
);
}
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2002.05.13;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.004 c