/
/
SplSetPrinterDataEx
if
( !v11
&& !wcsncmp(pKeyName, L
"CopyFiles\\"
,
0xAui64
)
&& !(
*
(_DWORD
*
)(
*
((_QWORD
*
)hPrinter
+
0x15
)
+
168i64
) &
0x4000000
) )
{
SplCopyFileEvent(hPrinter, pKeyName);
}
/
/
SplCopyFileEvent
if
( !(unsigned
int
)SplGetPrinterDataEx(
hPrinter,
v7,
L
"Module"
,
(unsigned
int
*
)&v20,
(unsigned __int8
*
)pszModule,
v19,
&v19)
&& v20
=
=
1
)
{
v3
=
CreateFullyQualifiedNameFromPSpool(hPrinter, &v18);
if
( v3 )
{
v10
=
SplLoadLibraryTheCopyFileModule((__int64)hPrinter, pszModule);
/
/
SplLoadLibraryTheCopyFileModule
if
( (unsigned
int
)GetDriverDirectory(&DriverDirectory, MaxLength, pIniEnvironment,
0i64
, pIniSpooler) )
{
if
( !(unsigned
int
)MakeCanonicalPath(pszModule, &LibFileName)
|| !(unsigned
int
)IsModuleFilePathAllowed(&LibFileName, &DriverDirectory)
|| (hModule
=
LoadLibraryW(&LibFileName))
=
=
0i64
)
{
if
( (unsigned
int
)GetIniDriverAndDirForThisMachineEx(
*
(_QWORD
*
)(hPrinter
+
0x40
),
MaxLength,
&IniDriverAndDir,
(struct _INIDRIVER
*
*
)&hPrinter,
pIniEnvironment) )
{
v12
=
StringCchCopyW(&IniDriverModulePath,
0x104i64
, &IniDriverAndDir);
/
/
/
/
0
:
004
> du beddc0
/
/
IniDriverAndDir
/
/
00000000
`
00beddc0
"C:\Windows\system32\spool\DRIVER"
/
/
00000000
`
00bede00
"S\x64\4\"
v6
=
StatusFromHResult(v12);
if
( !v6 )
{
v13
=
StringCchCatW(&IniDriverModulePath,
0x104i64
, pszModule);
v6
=
StatusFromHResult(v13);
if
( !v6 )
{
if
( (unsigned
int
)MakeCanonicalPath(&IniDriverModulePath, &LibFileName) )
{
if
( (unsigned
int
)IsModuleFilePathAllowed(&LibFileName, &IniDriverAndDir) )
{
hModule
=
LoadLibraryExW(&LibFileName,
0i64
, v6
+
8
);
if
( !hModule )
v6
=
GetLastError();
}
}
}