DRIVER_UPGRADE_INFO_2 구조체는 프린터 인터페이스 DLL의 DrvUpgradePrinter 함수에 대한 입력으로 사용됩니다.
통사론
typedef struct _DRIVER_UPGRADE_INFO_2 {
LPTSTR pPrinterName;
LPTSTR pOldDriverDirectory;
DWORD cVersion;
LPTSTR pName;
LPTSTR pEnvironment;
LPTSTR pDriverPath;
LPTSTR pDataFile;
LPTSTR pConfigFile;
LPTSTR pHelpFile;
LPTSTR pDependentFiles;
LPTSTR pMonitorName;
LPTSTR pDefaultDataType;
LPTSTR pszzPreviousNames;
} DRIVER_UPGRADE_INFO_2, *PDRIVER_UPGRADE_INFO_2;
회원
pPrinterName
프린터의 이름을 지정하는 NULL로 끝나는 문자열에 대한 포인터입니다. 자세한 내용은 설명 섹션을 참조하세요.
pOldDriverDirectory
이전 프린터 드라이버 파일을 찾을 수 있는 로컬 디렉터리를 지정하는 NULL로 끝나는 문자열에 대한 포인터입니다.
cVersion
드라이버가 작성된 운영 체제 버전을 지정합니다.
값 | 운영 체제 |
---|---|
0 | Windows 95/98/Me |
1 | Windows NT 3.1~ Windows NT 3.51 |
2 | Windows NT 4.0 |
3 | Windows 2000 이상 |
pName
드라이버의 이름을 지정하는 NULL로 끝나는 문자열에 대한 포인터입니다(예: "QMS 810"). 자세한 내용은 설명 섹션을 참조하세요.
pEnvironment
드라이버가 작성된 환경을 지정하는 NULL로 끝나는 문자열에 대한 포인터입니다(예: "Windows NT x86" 또는 "Windows Itanium").
pDriverPath
디바이스 드라이버가 포함된 파일의 파일 이름 또는 전체 경로 및 파일 이름을 지정하는 NULL로 끝나는 문자열에 대한 포인터입니다(예: "pscript.dll").
pDataFile
드라이버 데이터를 포함하는 파일의 전체 경로 및 파일 이름(예: "qms810.ppd")을 지정하는 NULL로 끝나는 문자열에 대한 포인터입니다.
pConfigFile
디바이스 드라이버의 구성 동적 연결 라이브러리에 대한 파일 이름 또는 전체 경로 및 파일 이름을 지정하는 NULL로 끝나는 문자열에 대한 포인터입니다(예: "pscrptui.dll").
pHelpFile
디바이스 드라이버의 도움말 파일에 대한 파일 이름 또는 전체 경로 및 파일 이름을 지정하는 null로 끝나는 문자열에 대한 포인터입니다.
pDependentFiles
드라이버가 종속된 파일을 지정하는 NULL로 끝나는 문자열에 대한 포인터입니다. 문자열의 각 파일 이름도 null 문자(예: "pscript.dll\0qms810.ppd\0pscrptui.dll\0pscrptui.hlp\0pstest.txt\0\0")로 종료됩니다.
pMonitorName
언어 모니터를 지정하는 NULL로 끝나는 문자열에 대한 포인터입니다(예: "PJL 모니터"). 이 멤버는 NULL 수 있으며 양방향 통신이 가능한 프린터에 대해서만 비NULL 지정해야 합니다.
pDefaultDataType
인쇄 작업의 기본 데이터 형식(예: "EMF")을 지정하는 NULL로 끝나는 문자열에 대한 포인터입니다.
pszzPreviousNames
이 드라이버와 호환되는 이전 프린터 드라이버 이름을 지정하는 NULL로 끝나는 문자열에 대한 포인터입니다(예: "OldName1\0OldName2\0\0").
발언
DRIVER_UPGRADE_INFO_2 구조를 가리키는 pDriverUpgradeInfo 매개 변수를 사용하여 DrvUpgradePrinter를 호출하면 pPrinterName 멤버는 업데이트할 프린터의 이름을 포함하는 문자열을 가리킵니다. pName 멤버는 업데이트할 프린터 드라이버의 이름을 포함하는 문자열을 가리킵니다. 이는 반드시 pPrinterName 멤버가 이름을 가리키는 프린터용 드라이버가 아닙니다.
이 문제가 어떻게 발생할 수 있는지 확인하려면 컴퓨터가 두 프린터에 연결되어 있다고 가정합니다. 하나는 드라이버 이름이 "Acme 플로터"이고 다른 하나는 드라이버 이름이 "Acme RasterMaster"입니다. 또한 두 드라이버가 공통 드라이버 파일인 plotui.dll공유한다고 가정합니다. "Acme 플로터" 드라이버가 AddPrinterDriverEx 함수(Microsoft Windows SDK 설명서에 설명됨)에 대한 호출로 업데이트되면 두 드라이버 모두 업그레이드의 영향을 받는 파일을 사용하기 때문에 DrvUpgradePrinter가 두 프린터에 대해 호출됩니다. 두 호출에서 pName 멤버는 AddPrinterDriverEx 호출에 사용되는 프린터 드라이버의 이름인 "Acme 플로터"를 가리킵니다. 그러나 pPrinterName 멤버가 가리키는 문자열은 DrvUpgradePrinter에 대한 두 호출 모두에서 다릅니다. 각 호출에서 pPrinterName 업데이트되는 프린터의 이름을 가리킵니다.
요구 사항
요구 | 값 |
---|---|
헤더 | winddiui.h(Winddiui.h 포함) |