Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6862015
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 27, 20262026-05-27T02:36:31+00:00 2026-05-27T02:36:31+00:00

I have a NDIS driver, which gets listed both in connection properties’s installed items

  • 0

I have a NDIS driver, which gets listed both in connection properties’s installed items list and in device manager; the question is, how do I write an extension which will be used for managing driver’s properties, and how to install it?

Of course, a plain GUI program may communicate with the driver, set properties, get version numbers and other statistical info etc, that’s what DeviceIoControl exists for; but, does this means that no dedicated interface exists to inform the driver about configuration changes?

NDIS driver configuration screenshot

It would be pleasant if someone can forward this question to eggheadcafe/osr’s ntdev lists.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-27T02:36:31+00:00Added an answer on May 27, 2026 at 2:36 am

    If you want your network driver to have some UI in the LAN Properties dialog, then you need to do these things:

    Create a NotifyObject (if you don’t have one already)

    A NotifyObject is essentially a COM object associated with your driver. To make one,

    1. Make a DLL that can create your new COM class. (If you use ATL’s class factory, it’s only a couple lines of code. I highly recommend using ATL for implementing COM objects. This is out-of-scope of the LAN Properties GUI, but you should look up DllGetClassObject, a C++ class that inherits from CComObjectRoot and CComCoClass, a call to OBJECT_ENTRY_AUTO, and a BEGIN_COM_MAP if you’re new to COM.)
    2. Associate your COM object with the driver by putting ClsId={guid} and ComponentDll=filename into your INF.

    Implement INetCfgComponentPropertyUi on your COM object

    1. The key method is MergePropPages. In this method, you allocate propertysheet pages and merge them into the adapter properties. This operation looks something like this pseudocode:

      HPROPSHEETPAGE *psharray = CoTaskMemAlloc(NUMBER_OF_PAGES * sizeof(HPROPSHEETPAGE);
      for (i = 0; i < NUMBER_OF_PAGES; i++)
          psharray[i] = CreatePropertySheetPage(&psp);
      
    2. The API is meant to be transactional. Make sure to apply any changes in the ApplyProperties method, and (if applicable) undo them in CancelProperties.

    3. You don’t need to do anything in QueryPropertyUi or SetContext, although you might want to save the context if you need to get the registry key location.

    Test your changes

    If all goes well, then your new Notify Object will be loaded up every time there are any network configuration changes. If the GUI is being displayed, then Windows will query your class for the INetCfgComponentPropertyUi interface and call MergePropPages.

    I find it helpful to put hardcoded breakpoints in my DLL at key locations, and then attach a kernel debugger so that I can always find the DLL, no matter which process is loading it. (On Windows 7, you’ll be loaded in drvinst.exe, which can be hard to find with a usermode debugger.)

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have compiled succesfully the ndisprot example ndis driver that came with the Windows
Have created a ATL COM project through which I am inserting Menu Items to
Have just started using Visual Studio Professional's built-in unit testing features, which as I
I'm looking at developing a device which will need to support Ethernet over USB
**Have it working now. I forgot to populate the Array List. How embarrassing. I'm
We have a custom NDIS protocol and miniport drivers for Windows Mobile 6.5. We'd
Have anyone used Redmine Documentor which lets you convert PHP to HTML to Redmine
Have the following scenario. I have a few form, which essentially have a few
I am working on a Windows NDIS driver using the latest WDK that is
Have a bunch of classes which I need to do serialize and deserialize from/to

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.