Trying to convert a Lower HID Keyboard Filter to an Upper filter above kbdhid

Hello,
A few months ago I solicited some help regarding writing a filter for a USB/HID keyboard.  Thanks to all who gave help especially DH.  It does work and I can even get diagnostic feed back from it.
Unfortunately, it seems to lack the flexibility I required.  It is loaded as a lower filter below  kbdhid.   I do get the HID keyboard reports, but I can only change that single report.  I want to be able
to insert an additional keyboard report ( I want to be able to send another key with it's own modifiers).  I don't see/know how to do it. Here are a couple of options I thought about, but I don't know how to implement either one:
1)
It seems to me that one option would be to some how get the kbdhid driver to request a second read from the keyboard WITHOUT an actual keystroke occurring.  Presumably it would be identical to the first one since the pressed keys hasn't changed
in that brief time.  But, then using this second report one I could change it to insert the desired key/modifier.
2)
Another option might be to use an upper filter between kbdhid and kbdclass. (It would have to be before the I8042 to the kbdclass input because  we already have an upper filter for the kbdclass that filter keystroke from a PS/2 keyboard. ) 
I have tried moving the existing, functional HID filter from a lower filter to an upper filter.  It does load and devcon shows it to be an upper filter above kbdhid.  Debug diagnostics show that DriverEntry gets call and that the EvtIoDeviceControl
routine gets called a few times initially, just like when it was a lower filter.
However, the EvtIoRead and EvtIoWrite routines never get called, let alone the ReadCompletion routine.
Obviously there is something different between lower and upper filters, but what.  Do they take the same callback routines/protocols?
Also is the output of the kbdhid in HID keyboard report format or has it changed to the KEYBOARD_INPUT_DATA format.
How can I capture HID keyboard data after kbdhid?
3)
Thanks,
Don

the way to make this work with your current setup is to queue the read request kbdhid sends and then send down your own request. When you want to report a new key outside of the hw reporting, you complete the queued read with the data. This gets complex
if the read you send down completes before kbdhid can send another read
d -- This posting is provided "AS IS" with no warranties, and confers no rights.

Similar Messages

  • Code 41 Error when installing my HID keyboard driver with my HID mouse driver

    I am developing a HID keyboard driver and a HID mouse driver based on HIDUSBFX2 sample code.
    So I added some lines as below into both keyboard driver inf file and mouse driver inf file.
    ;-------------- Service installation
    [hidKeyboard_Device.NT.Services]
    AddService = hidKeyboard,, hidKeyboard_Service_Inst
    AddService = mshidkmdf,0x000001fa, mshidkmdf_Service_Inst
    ; -------------- hidKeyboard driver install sections
    [hidKeyboard_Service_Inst]
    DisplayName    = %hidKeyboard.SVCDESC%
    ServiceType    = 1               ; SERVICE_KERNEL_DRIVER
    StartType      = 3               ; SERVICE_DEMAND_START
    ErrorControl   = 1               ; SERVICE_ERROR_NORMAL
    ServiceBinary  = %12%\hidKeyboard.sys
    ; -------------- mshidkmdf driver install sections
    [mshidkmdf_Service_Inst]
    DisplayName    = %mshidkmdf.SVCDESC%
    ServiceType    = 1                  ; SERVICE_KERNEL_DRIVER
    StartType      = 3                  ; SERVICE_DEMAND_START
    ErrorControl   = 1                  ; SERVICE_ERROR_NORMAL
    ServiceBinary  = %10%\System32\Drivers\mshidkmdf.sys
    LoadOrderGroup = Base
    [hidKeyboard_Parameters.AddReg]
    HKR,,"LowerFilters",0x00010000,"hidKeyboard"
    I installed my HID mouse driver first successfully.
    And then I tried to install my HID keyboard driver. But the installation was failed with error code 41.
    Windows successfully loaded the device driver for this hardware but cannot find the hardware device. (Code 41)
    When I checked mshidkmdf service registry, I can find that Owners value is "oem6.inf, oem5.inf"
    oem6.inf - keyboard driver inf file, oem5.inf - mouse driver inf file
    And when I checked the log with traceview, keyboard driver was not able to receive any IRP from HID class.
    On the other hand, mouse driver received the IRP and reinstalled.
    * If I uninstall the mouse driver and then install it again, the driver is installed successfully. I mean that this issue was found when first installation.
    Please help me~

    if you are filtering below the hid miniport, why do you have separate keyboard and mouse infs? For a filter below the miniport just use one inf and the filter will see both the keyboard and mouse requests (assuming you report a keyboard and mouse TLCs
    in the hid descriptor)
    d -- This posting is provided "AS IS" with no warranties, and confers no rights.

  • Elitebook 8440p keyboard driver not found HID Keyboard

    I have a Elitebook 8440p running Win 7 64 Pro. and I'm trying to connect a mini keyboard that is wired and connects via usb port.  I tried both scenarios, connect to the back of the docking station, or connect directly to the laptop, "unable to find drivers, device is not recognized".   This mini keyboard works on my work laptop (another vendor).   I've loaded all of the microsoft updates and drivers from HP.    I can see my work laptop (another vendor) device manager showing two keyboard types,  standard ps/2 and HID.   My 8440p device manager is only showing standard ps/2.   I've updated all the microsoft updates, both required and optional.  I've downloaded all hp drivers.   Where can I find HID Keyboard Device drivers.  I tried the manufacturer and they don' have any.  Any suggestions?  

    Hi:
    I don't think it is a big deal but let's see if we can find a driver for it.
    Please click on the missing keyboard filter in the device manager. Then click on the details tab. In the Properties drop down list, select the second item (Hardware ID's).
    Post  the top string of characters you see in the window.
    That will give me more information to go on.
    Paul

  • Upgrade Vista to Windows 7 Keyboard Filter Issue

    I really need some help with this...
    I upgraded vista to Windows 7 full retail version.
    Compatability check said to update keyboard filter. I couldnt find much info about this and assumed it wouldnt affect it too much except extra functions I probly never use.
    Unfortunately, my keyboard doesnt function properly at all.
    Im using HP G30-260US laptop.
    I have now disconnected the keyboard ribbon and plugged in a usb keyboard, quite a pain to use this one, but at least its working. I would really like to know of a fix for this issue to get my real keyboard working and windows 7 is already running on this computer, from upgrading, not a clean install. I've tried installing a different quick launch buttons driver and uninstalled it completely after windows 7 but no success.
    Please help me hehe
    Thanks a miillion
    Matt 
    This question was solved.
    View Solution.

    Matt, you may want to start a thread here:
    http://h30434.www3.hp.com/psg/?category.id=Noteboo​k
    It is HP's Notebook (laptop) forums.
    Signature:
    HP TouchPad - 1.2 GHz; 1 GB memory; 32 GB storage; WebOS/CyanogenMod 11(Kit Kat)
    HP 10 Plus; Android-Kit Kat; 1.0 GHz Allwinner A31 ARM Cortex A7 Quad Core Processor ; 2GB RAM Memory Long: 2 GB DDR3L SDRAM (1600MHz); 16GB disable eMMC 16GB v4.51
    HP Omen; i7-4710QH; 8 GB memory; 256 GB San Disk SSD; Win 8.1
    HP Photosmart 7520 AIO
    ++++++++++++++++++
    **Click the Thumbs Up+ to say 'Thanks' and the 'Accept as Solution' if I have solved your problem.**
    Intelligence is God given; Wisdom is the sum of our mistakes!
    I am not an HP employee.

  • How to hide or filter out the row at break subtotal level

    Hi All,
    Need to know how to hide or filter out a row at break subtotal level.
    My Requirement is to sum up the first 20 business days total as Month total.
    This is a cross tab report, with Dates going from top to bottom, Securities going from left to right and Amount as the intersection of this two dimensions.
    So I have created a variables like this below
    RunningCount of Mtr Dt=ToNumber(RunningCount([Query 1].[Intrader Acct Mtrty Dt]))
    and
    MonthBreak=If [RunningCount of Mtr Dt] Between (1;20) Then 1 else 2
    Inserted this "MonthBreak" variable into the crosstab so it will give me each rowcount, then applied the break on this variable, so it split the first 20 rows and the rest of the remaining rows.
    Then applied Sum on the Amount column so it will add up the first 20 rows and then the remaining rows. Now I want to display only the subtotal row of the first 20rows and hide/filter the row subtotal line for remaining row numbers greater than 21.
    Did tried to do some thing using the alterers but no luck.
    Please help me fix this

    Hi Mathangi,
    When I apply
    =If ([MonthBreak] = 1) then Sum(Amount) else 0
    in the subtotal row, then nothing is changed.
    And one other thing I noticed is when we apply break on a column it footer should be same as the break value right. But here in my report the break footer is displaying 1 for both the cases for first 20 rows break and the rest from 21st rows.
    That is when I place  MonthBreak variable in the table.. which has values 1(for row 1 through 20) and 2 (for rows 21 to end of the report) then apply break on this MonthBreak column, its footer value are same for both the cases which is displaying as 1
    Do you know why this happens and to your information this is a cross tab report I am working on....

  • Keyboard Filter Compatibility Error When Upgrading to Windows 7

    I recently upgraded to Windows 7. As soon as I did my printer stopped working. I was trying to fix it for about two weeks when the mouse and keyboard stopped working. I called hp tech multiple times over the past week. I recovered my system back to Vista and when I tried to do the upgrade the compatibility message appeared stating the keyboard filter may not work. The tech had my download the upgrade to the quick launch buttons and the BIOS system, yet the same message appeared anyways. This also appeared the first time I upgraded myself, in which when I went in manually to upgrade the keyboard it said everything was updated.
    The tech informed me to go ahead with the upgrade and said a senior tech would call me a few hours later. The call never came, and when I called back I was told I would need to restore my computer back to vista again! and update the driver then upgrade back to 7. Needless to say I was upset, and I don't believe I need to do all that again. My keyboard is working fine now but I'm afraid it might stop working like it did last time.
    Basically, I just need to know if I should listen to the techs, who got it wrong the first time, and redo the horribly long process, if I should update sometime now, or if I should just wait and see.
    I have a dv-4 Pavilion Entertainment PC. Thanks.

    I did upgrade the quick launch buttons online before I upgraded. I went to check and the most current one is already installed on my computer. But even with installing that the error message still came up.
    My question is should this be something I should be concerned about in case the same problem happens again? Like I said, everything works fine now but the problems with the mouse and keyboard didn't happen until 2 weeks after I upgraded.
    I just don't want to go ahead and reinstall all my programs and files now if I'm just going to have to restore my computer, upgrade again, and have to redo that process.

  • I am trying to convert AAC to mp3. When highlight and right click it only offers to make copies in AAC. HELP!

    I am trying to convert AAC to mp3. When highlight and right click it only offers to make copies in AAC. HELP!

    Hello jepperdee,
    Thanks for using Apple Support Communities.
    For more information, take a look at:
    iTunes: How to convert a song to a different file format
    http://support.apple.com/kb/ht1550
    To convert a song's file format
    Open iTunes Preferences.
    Windows: Choose Edit > Preferences.
    Mac: Choose iTunes > Preferences.
    Click the General button, then click the Importing Settings… button in the lower section of the window.
    From the Import Using pop-up menu, choose the encoding format that you want to convert the song to, then click OK to save the settings.
    Select one or more songs in your library, then from the File > Create New Version menu, choose one of the following (the menu item changes to show what's selected in your Importing preferences):
    Create MP3 version
    Create AAC version
    Create AIFF version
    Create WAV version
    Create Apple Lossless version
    Have a nice day,
    Mario

  • Hide Simple Filter

    Hi Experts
    I am looking for a option to hide simple filter for some of the users in enterprise. I tried modifying below rights.
    Interactive: General - Ability to hide / show toolbars
    Interactive: Reporting - Create and edit report filter
    I am still seeing the simple filter in Webi Reports.
    Please advice
    Re: Disable "Add Simple Report Filter" from WEBI XI3

    Prasath,
    I noticed in the post in your link, it mentioned making sure the developer of the report saves it with the filter area suppressed. Could that be the issue?
    Thanks

  • Converting a Low Res H.264 TO Mpeg-2 for Uploading

    I have a two minute trailer for a documentary that the producer wants me to upload for "Independent Film Week" that needs to be in Mpeg-2 format. Previously, i have uploaded an low res "H.264" format. How do i convert the H.264 (quicktime?) to mpeg-2? I tried using Compressor, but the MPEG-2 setting was high res (6 gigs).
    2nd question: if i convert a H.264 quicktime with Compressor, the file is "batch file". What did i do wrong?

    I'm not really an experienced guy at this, but you might try experimenting with these suggestions and test your results:
    I would try exporting directly from your original timeline instead of trying to convert your H.264 footage. Export to the MPEG2 setting, but double-click the setting in Compressor to open the setting in the Inspector. Click on the "Quality" tab, and lower your bit rate (you'll see it adjust the file size at the bottom).
    Oh, and I'd set In & Out points in your FCP timeline before you export so that you can experiment with a few seconds to better see your results. Or you could just examine the quality in the Preview window of Compressor.
    So you might try experimentation with that. Hopefully, that's helpful. Good luck!
    Lawrence

  • ISX40 trying to find a telephoto lens and filter .

    I am trying to find a telephoto lens and filter that fits my SX40.  Have recently purchased a 52mm but in my viewfinder the subject appears foggy. I would like to take closeups of distant subject.
    Solved!
    Go to Solution.

    Hi Annadamma,
    Because of the zoom capability of this camera, Canon does not offer  accessory telephoto or zoom lenses for it.
    While you can obtain accessory lenses for Rebel cameras, to get more reach than you have with this camera, you'd need a lens with a longer focal length than 840mm.  The lens with the longest focal length currently offered by Canon is the .   You may see this lens by clicking here.
    For a bit more "reach", you may want to use the digital zoom feature, as shown below:
    Press the <MENU> button (), and from the [Shooting] tab () set the [Digital Zoom] to either [1.5x] or [2.0x].
    important:
    A recording pixel setting of [Large] () or [Medium 1] () will cause images to appear coarse (the zoom factor will appear in blue).
    The [Digital tele-converter] cannot be used together with the [Digital zoom].
    The [Digital tele-converter] can be used in the following aspect ratio and recording pixel setting combinations:
    Did this answer your question? Please click the Accept as Solution button so that others may find the answer as well.

  • IPad keyboard will not dismiss with hide keyboard button

    I have a UITextField on my screen. The keyboard will not disappear when I press the hide keyboard button in the lower right corner. Pressing the "Done" button works just fine and the keyboard will disappear.
    I have connected the textbox's delegate to Files Owner. Verified by looking at the Text Box's Connection Inspector.
    Under Outlets for the textbox "delegate-Files Owner"
    My H file contains  @interface SettingsView : UIViewController <UITextFieldDelegate, UITableViewDelegate, UITableViewDataSource>{
    In my M file I have the following code.
    -(BOOL) textFieldShouldReturn:(UITextField*) textField {
        [textField resignFirstResponder];
        return YES;
    When I press the keyboard hide button(lower right corner), the keyboard buttons will sometimes become unresponsive for about 1 second, but the keyboard will not disappear. I would appreciate any guidance with solving this problem. I find it troubling that this key is not working. My efforts to find a solution have come up nil and there appears to be little to no documentation anywhere regarding this lower right corner button.
    Thanks in advance.

    Thanks for the quick reply. Unfortunately nothing worked. Below is the extra code added in my M file
    - (BOOL)textFieldShouldEndEditing:(UITextField *)textField
        [textField resignFirstResponder];
        return YES;
    I placed a breakpoint in both the textFiledShouldEndEditing and textFieldShouldReturn. In both cases neither function was called when I pressed the hide keyboard button. They were only called when I pressed the Done button. After a little more research I have found people with the exact same problem, yet no solutions available.
    What gets called when the user presses the hide keyboard button? Is this hide keybaord button new?
    My only assumption is that somehow the code behind the keyboard has a bug in it that I'm experiencing. I have a few older iPad projects that I decided to try out and run. Each have a UITextEdit field and every one encounter the same problem with the hide keyboard button.

  • "Property value is not valid" when PropertyGridView tries to convert a string to a custom object type.

    Hi,
    I have a problem with an PropertyGrid enum property that uses a type converter.
    In general it works, but when I double clicking or using the scoll wheel,  an error message appears:
    "Property value is not valid"
    Details: "Object of type 'System.String' cannot be converted to type 'myCompany.myProject.CC_myCustomProperty."
    I noticed that the CommitValue method (in PropertyGridView.cs) tries to convert a string value to a CC_myCustomProperty object.
    Here is the code that causes the error (see line 33):
    (Using the .net symbols from the PropertyGridView.cs file)
    1
            internal bool CommitValue(GridEntry ipeCur, object value) {   
    2
    3
                Debug.WriteLineIf(CompModSwitches.DebugGridView.TraceVerbose,  "PropertyGridView:CommitValue(" + (value==null ? "null" :value.ToString()) + ")");   
    4
    5
                int propCount = ipeCur.ChildCount;  
    6
                bool capture = Edit.HookMouseDown;  
    7
                object originalValue = null;   
    8
    9
                try {   
    10
                    originalValue = ipeCur.PropertyValue;   
    11
    12
                catch {   
    13
                    // if the getter is failing, we still want to let  
    14
                    // the set happen.  
    15
    16
    17
                try {  
    18
                    try {   
    19
                        SetFlag(FlagInPropertySet, true);   
    20
    21
                        //if this propentry is enumerable, then once a value is selected from the editor,   
    22
                        //we'll want to close the drop down (like true/false).  Otherwise, if we're  
    23
                        //working with Anchor for ex., then we should be able to select different values  
    24
                        //from the editor, without having it close every time.  
    25
                        if (ipeCur != null &&   
    26
                            ipeCur.Enumerable) {  
    27
                               CloseDropDown();   
    28
    29
    30
                        try {   
    31
                            Edit.DisableMouseHook = true;  
    32
    /*** This Step fails because the commit method is trying to convert a string to myCustom objet ***/ 
    33
                            ipeCur.PropertyValue = value;   
    34
    35
                        finally {   
    36
                            Edit.DisableMouseHook = false;  
    37
                            Edit.HookMouseDown = capture;   
    38
    39
    40
                    catch (Exception ex) {   
    41
                        SetCommitError(ERROR_THROWN);  
    42
                        ShowInvalidMessage(ipeCur.PropertyLabel, value, ex);  
    43
                        return false;  
    44
    I'm stuck.
    I was wondering is there a way to work around this? Maybe extend the string converter class to accept this?
    Thanks in advance,
    Eric

     
    Hi,
    Thank you for your post!  I would suggest posting your question in one of the MS Forums,
     MSDN Forums » Windows Forms » Windows Forms General
     located here:http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=8&SiteID=1.
    Have a great day!

  • I am trying to convert a pdf into an editable document

    I am trying to convert an adobe pdf into an editable document.

    Hey Leslie,
    If you don't have Acrobat installed on your computer than you can install 30 days free Trail version of Adobe Acrobat DC Pro using this link Download Adobe Acrobat free trial | Acrobat Pro DC.
    However if you want to contact Adobe Tech. Support please refer to this link Contact Customer Care, once the page gets loaded click on 'Still Need Help? Contact Us' button & initiate a Chat or Call.
    Regards,
    Aadesh

  • How do i hide keyboard while viewing bookmarks?

    can't hade keyboard to see bookmarks. If i use the hide keyboard symbol on bottom left of keyboard i go back out of bookmarks into an open page. i want to be able to close keyboard and still see bookmark list. also is it possible to look at bookmarks without opening a new tab? Thanks!

    I have a motorola razr maxx hd running stock jellybean. I use swift keyboard. When the bookmarks are in screen the keyboard opens automatically (i wish it didn't). If I hit the down symbol on the bottom left to hide the keyboard the keyboard does disappear but the screen changes back to previous webpage and bookmarks disappear. I can't find any way to see the bookmarks without the keyboard getting in the way.

  • Error when trying to convert excel files to pdf

    I'm getting the following error when trying to convert .xls and .xlsx files to pdf, using the "Create PDF" option:
    Error message from the primary converter:
    ALC-PDG-010-012-PDFMaker reported an error while printing the document.
    Word, Powerpoint and Text files convert without any issues. Also I'm able to opent the excel files and convert them to pdf using the acrobat option in excel.
    Livecycle Version: 10.0.2, GM
    MS Office Version: 2007
    Any help would be appreciated. Thanks in advance.
    Regards,
    Suhail N.

    It is always difficult when you need to convert multiple xls files to pdf or multiple sheets to pdf. If you have a single file to convert then the best method would be to copy your data to doc file and then convert it into PDF . If you have multiple files to convert then it is really difficult to convert all the files manually. Then the better method would be to use converter tool to convert excel to pdf . By doing this you can convert many files in just few seconds.

Maybe you are looking for

  • ITunes move to external hard drive

    I have run out of space on my 2007 Mac and have purchased an external hard drive in order to free up space on my Mac hard drive.  I have moved my itunes library to the external hard drive.  Before I delete the itunes library in my mac hard drive, I w

  • Multiple file upload in SharePoint 2013 using AjaxFileUpload

    Hi all, I want to add multiple files using file upload control in our visual web part SharePoint 2013. I tried to use AjaxFileUpload (from Ajaxcontrol toolkit) in my visual web part and also added the handler in web.config as described in article (ht

  • Computer won't recognize ipod touch

    When I attempt to connect my ipod touch 4th generation to my computer , the computer won't recognize the device.

  • OTL Multiple Assignments Approvals

    Hi All, I have configured OTL time entry with multiple assignments successfully. Each assignment has its own Supervisor. Now I am faced with the challenge on how to send approvals for multiple assignments. I started using Formula(Select mechanism) bu

  • 'ActionLaunchReader' Error

    I am attempting to download Adobe Reader.  I have temporarily turned off Norton 360 Antivirus and enabled Java scripting.  But continue to receive Error Message 'ActionLaunchReader' is undefined-What am I doing wrong?