Read Kernel Driver Properties based on driver display name

I would like to read some of the Properties of the Kernel driver listed below. This can be achieved by viewing the device manager. But would like to get these values from the C# application. Kindly suggest a better way to read them.

Hardware ID
Install Date
Last Arrival Date and
all others

Everything Device Manager does can be done with the SetupDi APIs. That’s how it does what it does. They are wordy and somewhat tedious to use, but it’s all there.

you will have to use pinvoke and the setupdi APIs. On purpose, none of this information is exposed via any of the standard namespaces