+ NTSTATUS Status;
+
+ inData.Length = dwPasswordSize;
+ inData.MaximumLength = inData.Length;
+ inData.Buffer = pPassword;
+
+ keyData.Length = strlen(pszKey);
+ keyData.MaximumLength = keyData.Length;
+ keyData.Buffer = (unsigned char *)pszKey;
+
+ outData.Length = 0;
+ outData.MaximumLength = 0;
+ outData.Buffer = NULL;
+
+ /* Get the required buffer size */
+ Status = SystemFunction005(&inData,
+ &keyData,
+ &outData);
+ if (Status != STATUS_BUFFER_TOO_SMALL)
+ {
+ DPRINT1("SystemFunction005 failed (Status 0x%08lx)\n", Status);
+ return RtlNtStatusToDosError(Status);
+ }