Property Page for a PCIe Device

Hi everyone,

I want to add a property page to my PCIe driver. Driver just controls some GPIOs on a module and I want to control those GPIOs through a property page in the device properties.

I can't find any working sample project that uses EnumPropPages32. I already developed a code that handles the callback such as:

BOOL APIENTRY PortsAccessPropPageProvider(PSP_PROPSHEETPAGE_REQUEST     pPropPageRequest,
										  LPFNADDPROPSHEETPAGE	        fAddFunc,
										  LPARAM					    lParam)
{
...
}

I dont see any page on the device properties but this is not the problem. I don't think property page provider DLL is loaded at all. I see the "Property Page Provider" in the driver details however the debug messages I placed in basically everywhere is not displayed on the DebugView.

What might be the issue? I would appreciate any help.

I solved the debug message issue. DLLs generated in debug mode cannot be loaded because some of the dependencies were missing. I had to install Visual Studio to solve this issue.

Another problem arises though, I can see the debug messages on WinDbg but I can't see the source code when break points are enabled in the property page provider with function __debugbreak(). This is probably due to module's debug symbols are not loaded. I can't load the .pdb file to the WinDbg.

Is there any suggestion how can I load a .pdb file to the WinDbg so that I can debug functions in the DLL?

  1. you don't have to install visual studio on the test system, you only have to install the correct c runtime dlls, which are provided as separate packages.
  2. windbg has to have access to both the pdb files and the source files. I assume you are debugging locally on the test system, so either copy the files (pdb and source) to the test system or make them available over a network share. Then point windbg at the location. The 'File' menu has options for setting both source and symbol locations.
1 Like