简体   繁体   English

重启后禁用USB键盘

[英]Disabling USB keyboard after reboot

I used SetupDiSetClassInstallParams and SetupDiCallClassInstaller to disable specific USB device.我使用SetupDiSetClassInstallParamsSetupDiCallClassInstaller来禁用特定的 USB 设备。

SP_PROPCHANGE_PARAMS params;

params.ClassInstallHeader.cbSize = sizeof(SP_CLASSINSTALL_HEADER);
params.ClassInstallHeader.InstallFunction = DIF_PROPERTYCHANGE;
params.StateChange = DICS_DISABLE;

// SP_DEVINFO_DATA - Info.DevInfoData 
if (!SetupDiSetClassInstallParams(hDevInfo, &(Info.DevInfoData),&params.ClassInstallHeader, sizeof(params))) {
    Error = GetLastError();
    return Error;
}

if (!SetupDiCallClassInstaller(DIF_PROPERTYCHANGE, hDevInfo, &(Info.DevInfoData))) {
    Error = GetLastError(); // error here
}

This approach works to all devices, except keyboard.这种方法适用于除键盘之外的所有设备。 If i try to disable her this way ERROR_NOT_DISABLEABLE returned.如果我尝试以这种方式禁用她,则返回 ERROR_NOT_DISABLEABLE。 But after reboot keyboard will be disabled.但重启后键盘将被禁用。

Before disabling, flags DN_DISABLEABLE and DN_REMOVABLE seted for this device, checked by function CM_Get_DevNode_Status .在禁用之前,为此设备设置了标志 DN_DISABLEABLE 和 DN_REMOVABLE,由函数CM_Get_DevNode_Status检查。 What i am doing wrong?我在做什么错?

此设备不支持禁用

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM