locked
WdfDeviceRetrieveDeviceInterfaceString returns STATUS_OBJECT_NAME_NOT_FOUND

    Question

  • I have been following the Windows 8 Custom driver access sample (http://code.msdn.microsoft.com/windowsapps/Custom-device-access-sample-43bde679) and trying to write a Windows Store App that communicates with my driver.  Calling WdfDeviceRetrieveDeviceInterfaceString returns STATUS_OBJECT_NAME_NOT_FOUND.

    Can someone point out what I'm doing wrong?  

    Further I'm not sure how a driver is supposed to find the driver interface GUID, can someone explain how this works?  

    Windows Store App manifest:

    <Capabilities>
        <DeviceCapability Name="0043cbde-43a1-481a-a5a7-30e23f38321e">
    </Capabilities>

    Windows App Store Device Interface/Broker:

    String^
    Interface::GetDeviceSelector()
    {
        return L"System.Devices.InterfaceClassGuid:=\"{0043cbde-43a1-481a-a5a7-30e23f38321e}\" AND "
               L"System.Devices.InterfaceEnabled:=System.StructuredQueryType.Boolean#True";
    
    }

    KMDF driver code:

    // {0043cbde-43a1-481a-a5a7-30e23f38321e}
    DEFINE_GUID(GUID_DEVINTERFACE_DPTF, 
                0x0043cbde, 0x43a1, 0x481a, 0xa5, 0xa7, 0x30, 0xe2, 0x3f, 0x38, 0x32, 0x1e);
    



    ntStatus = WdfDeviceRetrieveDeviceInterfaceString(wdfDevice, (LPGUID) &GUID_DEVINTERFACE_DPTF, NULL, wdfSymbolicLinkString);


    Double checked that Package Name, Publisher, and App ID in Device Metadata Authoring Wizard match the Windows Store App manifest.  Also made sure Access Custom Driver is checked.

    Monday, October 15, 2012 11:59 PM

Answers

  • Nevermind, figured it out, was missing this code before calling WdfDeviceRetrieveDeviceInterface

    /
        // Register a device interface so that app can find our device and talk to it.
        //
        ntStatus = WdfDeviceCreateDeviceInterface(wdfDevice,
                                                 (LPGUID) &GUID_DEVINTERFACE_DPTF,
                                                 NULL); // Reference String
    

    Tuesday, October 16, 2012 3:56 PM