Я создал устройство Bluetooth LE HID, которое представляет собой комбинированную клавиатуру, мышь и потребительское устройство. Все ОС могут подключиться к нему нормально ... кроме Windows 8.1, на всех аппаратных средствах. Он соединяется и соединяется, но затем кажется, что может произойти сбой при синтаксическом анализе дескриптора HID (я предполагаю здесь). Затем отображается «Ошибка драйвера» и отключается от устройства.
Только клавиатура появляется в принтерах и устройствах с предупреждением. В свойствах говорится, что есть «ошибка PnP».
Я включил Driver Verifier, поэтому при подключении я получаю BSOD driver_verifier_iomanager_violation
Делая анализ дампа памяти я получаю:
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
DRIVER_VERIFIER_IOMANAGER_VIOLATION (c9)
The IO manager has caught a misbehaving driver.
Arguments:
Arg1: 000000000000024c, A driver has returned STATUS_PENDING but did not mark the IRP pending via a
call to IoMarkIrpPending.
Arg2: fffff8040090aa50, The address in the driver's code where the error was detected.
Arg3: ffffcf819e230bd0, IRP address.
Arg4: 0000000000000103, Status code.
Debugging Details:
------------------
BUGCHECK_STR: 0xc9_24c
DRIVER_VERIFIER_IO_VIOLATION_TYPE: 24c
FAULTING_IP:
nt!ViGenericInternalDeviceControl+0
fffff804`0090aa50 4c8b05b117c8ff mov r8,qword ptr [nt!pXdvIRP_MJ_INTERNAL_DEVICE_CONTROL (fffff804`0058c208)]
FOLLOWUP_IP:
BTHUSB!BthUsb_AsynchCallUsbd+5b
fffff801`0ffdd65f 8bd8 mov ebx,eax
IRP_ADDRESS: ffffcf819e230bd0
DEFAULT_BUCKET_ID: WIN8_DRIVER_FAULT
PROCESS_NAME: System
CURRENT_IRQL: 2
ANALYSIS_VERSION: 6.3.9600.17237 (debuggers(dbg).140716-0327) amd64fre
LAST_CONTROL_TRANSFER: from fffff804008fa6b0 to fffff804003c5aa0
STACK_TEXT:
ffffd000`e24836a8 fffff804`008fa6b0 : 00000000`000000c9 00000000`0000024c fffff804`0090aa50 ffffcf81`9e230bd0 : nt!KeBugCheckEx
ffffd000`e24836b0 fffff804`008fd171 : fffff804`008ed470 fffff804`0090aa50 ffffcf81`9e230bd0 00000000`00000103 : nt!VerifierBugCheckIfAppropriate+0x3c
ffffd000`e24836f0 fffff804`008f3bd2 : ffffe001`165f3f40 ffffd000`e2483850 ffffe001`166b0b30 00000000`00000000 : nt!ViErrorFinishReport+0x10d
ffffd000`e2483750 fffff804`008f9bd5 : 00000000`00000000 fffff804`0090aec9 ffffe001`165f3f40 00000000`00020000 : nt!IovpCallDriver2+0x33e
ffffd000`e2483b20 fffff804`008ee928 : ffffcf81`9e230bd0 00000000`00000002 ffffcf81`9e230bd0 00000000`00000000 : nt!VfAfterCallDriver+0x289
ffffd000`e2483bb0 fffff804`0090aec9 : ffffcf81`9e230bd0 ffffe001`15303410 00000000`00000002 ffffe001`165f3f40 : nt!IovCallDriver+0x3e4
ffffd000`e2483c00 fffff804`008ee911 : ffffe001`15303560 ffffcf81`9e230bd0 fffff804`00395bd8 fffff804`0034fa7c : nt!ViFilterDispatchGeneric+0xd1
ffffd000`e2483c40 fffff801`0f806989 : ffffcf81`9e230bd0 fffff801`0ffdd65f fffff804`00395bd8 ffffe001`15dadde0 : nt!IovCallDriver+0x3cd
ffffd000`e2483c90 fffff801`0ffdd65f : ffffcf81`93704f00 ffffcf81`8374ab98 ffffcf81`844eaed0 ffffcf81`8374ab98 : VerifierExt!IofCallDriver_internal_wrapper+0x71
ffffd000`e2483cd0 fffff801`0ffdb9f8 : ffffcf81`93704f00 ffffcf81`844eaed0 ffffcf81`844eaed0 ffffcf81`8374aaa0 : BTHUSB!BthUsb_AsynchCallUsbd+0x5b
ffffd000`e2483d10 fffff801`0ffdbc48 : ffffcf81`93704f00 ffffd000`e2483dd0 ffffcf81`844eaed0 ffffcf81`844eaed0 : BTHUSB!BthUsb_SendTransferUrb+0xe8
ffffd000`e2483d50 fffff801`0ffdaf65 : ffffcf81`8f214fb8 ffffcf81`8374aaa0 ffffcf81`8f214fb8 ffffcf81`8374aaa0 : BTHUSB!BthUsb_WriteAclData+0x234
ffffd000`e2483e00 fffff801`12ca338b : ffffcf81`8f214fb8 ffffd000`e2483f40 ffffcf81`8d1e0ba0 ffffcf81`91184480 : BTHUSB!BthUsb_HciWrite+0xc1
ffffd000`e2483e40 fffff801`12ca3a3c : ffffcf81`91184480 ffffcf81`91184480 00000000`00000000 ffffcf81`8d1e0ba0 : bthport!HCI_SendNextAclWrite+0x943
ffffd000`e2483ff0 fffff801`12ca3cb6 : ffffcf81`9c702ed0 ffffcf81`8897af80 ffffcf81`91184480 00000000`0000001b : bthport!HCI_QueueOrStartAclWrBip+0x15c
ffffd000`e2484070 fffff801`12cf1b8d : ffffcf81`9322cc10 ffffcf81`8d1e0c30 ffffcf81`9c702ed0 ffffd000`e2484140 : bthport!HCI_WriteAclData+0x16e
ffffd000`e24840f0 fffff801`12ce2db5 : ffffcf81`9c702fbc 00000000`c0000225 ffffd000`e24841e9 00000000`00000000 : bthport!L2CapInt_SendFixedCIDData+0xf1
ffffd000`e2484140 fffff801`12ce2381 : ffffcf81`9322cc10 ffffcf81`9322cc10 fffff801`12d0e660 fffff801`12ce2278 : bthport!L2capCon_ProcessPostConnect+0x131
ffffd000`e2484250 fffff801`12cad868 : 00000000`00000000 ffffcf81`8d1e0c30 ffffcf81`9322cc28 ffffcf81`9322cc00 : bthport!L2CapCon_HciConnectCallback+0x109
ffffd000`e2484300 fffff801`12cb3c7d : 00000000`00000000 00000007`8033ec0c ffffcf81`8d1e0ba0 00000000`00000000 : bthport!HCI_CxnCallClientCallback+0xb0
ffffd000`e2484380 fffff801`12ce3069 : ffffcf81`00000000 00000007`8033ec0c ffffcf81`91184480 ffffcf81`9322cc10 : bthport!HCI_CreateConnection+0x2f5
ffffd000`e2484420 fffff801`12ce66f6 : 00000000`00000000 ffffcf81`97ea0d58 ffffcf81`9322cc10 fffff801`12d0e660 : bthport!L2capCon_CreateHciConnection+0xb5
ffffd000`e24844a0 fffff801`12ce6c54 : ffffcf81`96570a20 ffffcf81`9322cc10 ffffcf81`96570a20 ffffd000`e24845b8 : bthport!L2CapCon_ProcessNextSignalRequest+0x1a6
ffffd000`e2484560 fffff801`12c941ce : ffffe001`15311db0 ffffd000`e2484680 ffffcf81`97ea0d58 00000000`00000020 : bthport!L2CapInt_HandleSignalRequest+0x158
ffffd000`e2484600 fffff801`12c9299c : ffffe001`00000078 ffffe001`171cf301 ffffe001`15311c60 ffffe001`15311c60 : bthport!BthDispatchBrb+0xcda
ffffd000`e24846c0 fffff801`12c928bb : ffffcf81`96570a20 ffffe001`171cf310 00000000`00000000 00000000`00000103 : bthport!BthHandleInternalControl+0xdc
ffffd000`e2484720 fffff801`0f80d572 : ffffe001`15311c01 ffffe001`15311c60 ffffd000`e24847b0 fffff801`12c9279c : bthport!BthDispatchInternalControl+0x11f
ffffd000`e2484780 fffff804`008ee911 : ffffcf81`96570a20 00000000`00000002 ffffe001`16155f10 ffffcf81`8a348f00 : VerifierExt!xdv_IRP_MJ_INTERNAL_DEVICE_CONTROL_wrapper+0xfe
ffffd000`e24847e0 fffff804`0090aec9 : ffffcf81`96570a20 ffffe001`200fa4d0 00000000`00000002 ffffe001`15064510 : nt!IovCallDriver+0x3cd
ffffd000`e2484830 fffff804`008ee911 : ffffe001`200fa620 ffffcf81`96570a20 fffff804`00395bd8 ffffe001`15033310 : nt!ViFilterDispatchGeneric+0xd1
ffffd000`e2484870 fffff801`0f806989 : ffffcf81`96570a20 fffff801`0fabd056 fffff804`00395bd8 ffffe001`154f7f40 : nt!IovCallDriver+0x3cd
ffffd000`e24848c0 fffff801`0fabd056 : 00000000`00000005 ffffd000`e2484948 ffffcf81`97ea0d58 ffffcf81`97ea0d58 : VerifierExt!IofCallDriver_internal_wrapper+0x71
ffffd000`e2484900 fffff801`12dba9b0 : ffffcf81`97fb8fc0 ffffcf81`9013ae60 ffffcf81`8b3dae70 00000000`0041400b : Wdf01000!imp_WdfRequestSend+0x156
ffffd000`e2484960 fffff801`12dbb1f1 : ffffcf81`97ea0d58 0000307e`7952b0a8 0000307e`6fec5198 ffffe001`15033310 : BthLEEnum!BthLEEnumSendBrbAsync+0x118
ffffd000`e2484a00 fffff801`12dbbc92 : 00000000`00000000 ffffd000`e2484ab1 00000000`00000017 ffffcf81`9013af70 : BthLEEnum!BthLEEnumSendFixedCIDData+0xd5
ffffd000`e2484a40 fffff801`0fadbd00 : ffffcf81`7f678e00 00000000`00000000 ffffcf81`7f678e00 00000000`00000002 : BthLEEnum!BthLEEnumRootDeviceInternalIoControl+0x2c6
ffffd000`e2484b10 fffff801`0fab7d80 : fffff801`0fb2c300 ffffcf81`9013ae60 ffffcf81`7f678c20 0000307e`6fec5198 : Wdf01000!FxIoQueueIoInternalDeviceControl::Invoke+0x4c
ffffd000`e2484b50 fffff801`0fab7123 : 00000000`00000200 fffff801`0fb2c100 ffffcf81`94d1ef02 ffffd000`e2484d40 : Wdf01000!FxIoQueue::DispatchRequestToDriver+0x570
ffffd000`e2484c20 fffff801`0faefc60 : ffffcf81`7f678c20 00000000`00000000 00000000`00000000 00000000`00000001 : Wdf01000!FxIoQueue::DispatchEvents+0x363
ffffd000`e2484ce0 fffff801`0faef94e : ffffcf81`9544ac00 ffffcf81`9544ac20 ffffd000`e2484d70 ffffcf81`9013af90 : Wdf01000!FxIoQueue::QueueRequestFromForward+0x1ec
ffffd000`e2484d40 fffff801`0fb4486b : 00000000`00000000 ffffcf81`9013ae60 ffffcf81`9013ae60 fffff801`0facfbd0 : Wdf01000!FxIoQueue::ForwardRequestWorker+0xee
ffffd000`e2484db0 fffff801`0fb20976 : 0000307e`809873d8 ffffd000`e2484e40 ffffcf81`7f678c20 00000000`00000041 : Wdf01000!FxIoQueue::ForwardRequestToParent+0xeb
ffffd000`e2484de0 fffff801`12dc16fa : 00000000`00000000 0000307e`710e1518 ffffe001`15030000 ffffcf81`9706ef00 : Wdf01000!imp_WdfRequestForwardToParentDeviceIoQueue+0x1ae
ffffd000`e2484e70 fffff801`0fadbd00 : ffffcf81`9544ae00 0000307e`6fec5198 0000307e`6fec5198 00000000`00000017 : BthLEEnum!BthLEEnumDevicePdoIoInternalDeviceControl+0x5aa
ffffd000`e2484f10 fffff801`0fab7d80 : fffff801`0fb2c300 ffffcf81`9013ae60 ffffcf81`9544ac20 0000307e`6fec5198 : Wdf01000!FxIoQueueIoInternalDeviceControl::Invoke+0x4c
ffffd000`e2484f50 fffff801`0fab7123 : 00000000`00000200 fffff801`0fb2c100 ffffcf81`9750cf02 ffffd000`e2485150 : Wdf01000!FxIoQueue::DispatchRequestToDriver+0x570
ffffd000`e2485020 fffff801`0fac3279 : ffffcf81`9544ac20 ffffcf81`9013ae00 00000000`00000000 ffffd000`e24851c9 : Wdf01000!FxIoQueue::DispatchEvents+0x363
ffffd000`e24850e0 fffff801`0fabbd93 : ffffcf81`96570a00 ffffcf81`9013ae60 ffffcf81`96570a20 ffffcf81`96570a20 : Wdf01000!FxIoQueue::QueueRequest+0x8d
ffffd000`e2485150 fffff801`0f80d572 : 00000000`00020000 ffffd000`e2485200 ffffcf81`8ef1eae0 fffff801`0fabb240 : Wdf01000!FxDevice::DispatchWithLock+0xb51
ffffd000`e2485230 fffff804`008ee911 : ffffcf81`96570a20 00000000`00000002 ffffe001`169ae960 ffffe001`15413880 : VerifierExt!xdv_IRP_MJ_INTERNAL_DEVICE_CONTROL_wrapper+0xfe
ffffd000`e2485290 fffff804`0090aec9 : ffffcf81`96570a20 ffffe001`161af040 00000000`00000002 ffffe001`160d36e0 : nt!IovCallDriver+0x3cd
ffffd000`e24852e0 fffff804`008ee911 : ffffe001`161af190 ffffcf81`96570a20 fffff804`00395bd8 ffffd000`e2485401 : nt!ViFilterDispatchGeneric+0xd1
ffffd000`e2485320 fffff801`0f806989 : ffffcf81`96570a20 fffff801`0fabc711 fffff804`00395bd8 ffffe001`14c8a320 : nt!IovCallDriver+0x3cd
ffffd000`e2485370 fffff801`0fabc711 : ffffd000`e24855f0 ffffd000`e2485449 ffffcf81`901d6e70 ffffd000`e2485449 : VerifierExt!IofCallDriver_internal_wrapper+0x71
ffffd000`e24853b0 fffff801`0fada89c : 00000000`00000000 ffffd000`e2485500 00000000`00000001 00000000`00000000 : Wdf01000!FxIoTarget::SubmitSync+0x191
ffffd000`e24854b0 fffff801`0fb32f48 : fffff801`12dd0000 ffffcf81`901d6e70 ffffcf81`9706efe0 fffff804`008efece : Wdf01000!FxIoTargetSendIoctl+0x1e4
ffffd000`e2485760 fffff801`12ddd63e : 02680284`028402a0 ffffd000`e2485830 00000000`00000280 00000000`00000000 : Wdf01000!imp_WdfIoTargetSendInternalIoctlSynchronously+0x48
ffffd000`e24857c0 fffff801`12de327c : 00000000`00000000 00000000`00000000 ffffd000`e24858e8 fffff801`12dd4f10 : BthLEEnum!BthLEEnumDeviceFdoSendAttDataSync+0x11a
ffffd000`e2485850 fffff801`12de2fe0 : 00000000`00000000 ffffe001`14745310 00000000`00000007 00000000`0000ffff : BthLEEnum!BthLEAttSendPduOneWayInternal+0x160
ffffd000`e24858b0 fffff801`12de1e3e : ffffd000`e2485a90 ffffd000`e24859a9 00000000`0000ffff 00000000`00000000 : BthLEEnum!BthLEAttSendPduTwoWay+0xa8
ffffd000`e2485920 fffff801`12de5415 : 00000000`00000000 00000000`00000000 ffffd000`e2485b00 00000000`00000000 : BthLEEnum!BthLEAttReadByGroupType+0x146
ffffd000`e2485a00 fffff801`12de48b1 : ffffe001`14745310 ffffe001`00000000 00000000`00000000 ffffd000`e2485c08 : BthLEEnum!BthLEGattGetServicesInternal+0x231
ffffd000`e2485b70 fffff801`12ddc49d : 00000000`00000000 00000000`00000000 00000000`00000000 ffffe001`00000000 : BthLEEnum!BthLEGattThoroughRun+0x17d
ffffd000`e2485c00 fffff801`0facb242 : ffffcf81`7f61ea50 ffffd000`e2485db0 fffff801`0fb58ba0 00000000`00000000 : BthLEEnum!BthLEEnumDeviceFdoD0Entry+0x21d
ffffd000`e2485c50 fffff801`0fac7268 : 00000000`00000000 ffffd000`e2485db0 fffff801`0fb58c80 00000000`00000000 : Wdf01000!FxPkgPnp::PowerD0Starting+0x32
ffffd000`e2485cb0 fffff801`0fac765a : ffffcf81`7f61ea50 fffff801`0fb589c0 ffffcf81`7f61ea50 fffff801`0fb589c0 : Wdf01000!FxPkgPnp::PowerEnterNewState+0x138
ffffd000`e2485e00 fffff801`0fac73df : 00000000`00000000 ffffd000`e2485ef0 ffffcf81`7f61ec50 00000000`00000504 : Wdf01000!FxPkgPnp::PowerProcessEventInner+0xc6
ffffd000`e2485e80 fffff801`0facb062 : 00000000`00000000 ffffcf81`7f61ea50 00000000`00000501 ffffd000`e24860b0 : Wdf01000!FxPkgPnp::PowerProcessEvent+0xef
ffffd000`e2485f20 fffff801`0fac6c74 : ffffcf81`7f61ea50 ffffd000`e2485fc0 00000000`00000500 fffff804`0034f920 : Wdf01000!FxPkgPnp::NotPowerPolOwnerStarting+0xe
ffffd000`e2485f50 fffff801`0fac7069 : ffffcf81`7f61ea50 00000000`00000001 ffffcf81`7f61ea50 00000000`00000001 : Wdf01000!FxPkgPnp::NotPowerPolicyOwnerEnterNewState+0xf4
ffffd000`e2485fe0 fffff801`0fac6dd8 : 00000000`00000000 ffffd000`e24860d0 ffffcf81`7f61ed28 00000000`00000000 : Wdf01000!FxPkgPnp::PowerPolicyProcessEventInner+0x1df
ffffd000`e2486060 fffff801`0facd022 : 00000000`00000000 ffffe001`16877040 00000000`00000000 00000000`00000000 : Wdf01000!FxPkgPnp::PowerPolicyProcessEvent+0x10c
ffffd000`e2486100 fffff801`0fac5942 : 00000000`00000101 00000000`00000108 00000000`00000108 fffff804`0034f920 : Wdf01000!FxPkgPnp::PnpEventHardwareAvailable+0x9e
ffffd000`e2486140 fffff801`0fac5a5a : ffffcf81`7f61ea50 ffffcf81`7f61eb00 ffffcf81`7f61ea50 ffffcf81`7f61eb00 : Wdf01000!FxPkgPnp::PnpEnterNewState+0x102
ffffd000`e24861d0 fffff801`0fac5bc4 : 00000000`00000000 ffffd000`e24862c0 ffffcf81`7f61eb80 00000000`00000000 : Wdf01000!FxPkgPnp::PnpProcessEventInner+0xc2
STACK_COMMAND: kb
SYMBOL_STACK_INDEX: 9
SYMBOL_NAME: BTHUSB!BthUsb_AsynchCallUsbd+5b
FOLLOWUP_NAME: MachineOwner
MODULE_NAME: BTHUSB
IMAGE_NAME: BTHUSB.sys
DEBUG_FLR_IMAGE_TIMESTAMP: 545054f8
BUCKET_ID_FUNC_OFFSET: 5b
FAILURE_BUCKET_ID: 0xc9_24c_VRF_BTHUSB!BthUsb_AsynchCallUsbd
BUCKET_ID: 0xc9_24c_VRF_BTHUSB!BthUsb_AsynchCallUsbd
ANALYSIS_SOURCE: KM
FAILURE_ID_HASH_STRING: km:0xc9_24c_vrf_bthusb!bthusb_asynchcallusbd
FAILURE_ID_HASH: {dedf9404-a46e-32ea-628e-5dcde5ffdf19}
Followup: MachineOwner
Куда мне идти отсюда?