*|typedef struct _DRIVER_INFO_2 { *| DWORD cVersion; 0:4 *| LPTSTR pName; 4:4 *| LPTSTR pEnvironment; 8:4 *| LPTSTR pDriverPath; 12:4 *| LPTSTR pDataFile; 16:4 *| LPTSTR pConfigFile; 20:4 *|} DRIVER_INFO_2, *PDRIVER_INFO_2; 24 bytespName contains memory address of a string that ends with zero byte. This address (I'd even call it "this @#$@$! address") is stored inside the DRIVER_INFO_ buffer that functions like GetPrinterDriver or EnumPrinterDrivers returns as a number, say, pBuffer.