- ProbeForWrite(pwszName, KL_NAMELENGTH*sizeof(WCHAR), 1);
- wcscpy(pwszName, pKl->spkf->awchKF);
+ ProbeForWriteUnicodeString(pustrName);
+ ProbeForWrite(pustrName->Buffer, pustrName->MaximumLength, 1);
+
+ if (IS_IME_HKL(pKl->hkl))
+ {
+ RtlIntegerToUnicodeString((ULONG)(ULONG_PTR)pKl->hkl, 16, pustrName);
+ }
+ else
+ {
+ if (pustrName->MaximumLength < KL_NAMELENGTH * sizeof(WCHAR))
+ {
+ EngSetLastError(ERROR_INVALID_PARAMETER);
+ goto cleanup;
+ }
+ RtlInitUnicodeString(&ustrTemp, pKl->spkf->awchKF); /* FIXME: Do not use awchKF */
+ RtlCopyUnicodeString(pustrName, &ustrTemp);
+ }
+