UserInfo2->usri2_workstations[UserInfo->WorkStations.Length / sizeof(WCHAR)] = UNICODE_NULL;
Ptr = (LPWSTR)((ULONG_PTR)Ptr + UserInfo->WorkStations.Length + sizeof(WCHAR));
- RtlTimeToSecondsSince1970(&UserInfo->LastLogon,
- &UserInfo2->usri2_last_logon);
+ if (UserInfo->LastLogon.QuadPart == 0)
+ UserInfo2->usri2_last_logon = 0;
+ else
+ RtlTimeToSecondsSince1970(&UserInfo->LastLogon,
+ &UserInfo2->usri2_last_logon);
- RtlTimeToSecondsSince1970(&UserInfo->LastLogoff,
- &UserInfo2->usri2_last_logoff);
+ if (UserInfo->LastLogoff.QuadPart == 0)
+ UserInfo2->usri2_last_logoff = 0;
+ else
+ RtlTimeToSecondsSince1970(&UserInfo->LastLogoff,
+ &UserInfo2->usri2_last_logoff);
- RtlTimeToSecondsSince1970(&UserInfo->AccountExpires,
- &UserInfo2->usri2_acct_expires);
+ if (UserInfo->AccountExpires.QuadPart == MAXLONGLONG)
+ UserInfo2->usri2_acct_expires = TIMEQ_FOREVER;
+ else
+ RtlTimeToSecondsSince1970(&UserInfo->AccountExpires,
+ &UserInfo2->usri2_acct_expires);
UserInfo2->usri2_max_storage = USER_MAXSTORAGE_UNLIMITED;
UserInfo2->usri2_units_per_week = UserInfo->LogonHours.UnitsPerWeek;
UserInfo3->usri3_workstations[UserInfo->WorkStations.Length / sizeof(WCHAR)] = UNICODE_NULL;
Ptr = (LPWSTR)((ULONG_PTR)Ptr + UserInfo->WorkStations.Length + sizeof(WCHAR));
- RtlTimeToSecondsSince1970(&UserInfo->LastLogon,
- &UserInfo3->usri3_last_logon);
+ if (UserInfo->LastLogon.QuadPart == 0)
+ UserInfo3->usri3_last_logon = 0;
+ else
+ RtlTimeToSecondsSince1970(&UserInfo->LastLogon,
+ &UserInfo3->usri3_last_logon);
- RtlTimeToSecondsSince1970(&UserInfo->LastLogoff,
- &UserInfo3->usri3_last_logoff);
+ if (UserInfo->LastLogoff.QuadPart == 0)
+ UserInfo3->usri3_last_logoff = 0;
+ else
+ RtlTimeToSecondsSince1970(&UserInfo->LastLogoff,
+ &UserInfo3->usri3_last_logoff);
- RtlTimeToSecondsSince1970(&UserInfo->AccountExpires,
- &UserInfo3->usri3_acct_expires);
+ if (UserInfo->AccountExpires.QuadPart == MAXLONGLONG)
+ UserInfo3->usri3_acct_expires = TIMEQ_FOREVER;
+ else
+ RtlTimeToSecondsSince1970(&UserInfo->AccountExpires,
+ &UserInfo3->usri3_acct_expires);
UserInfo3->usri3_max_storage = USER_MAXSTORAGE_UNLIMITED;
UserInfo3->usri3_units_per_week = UserInfo->LogonHours.UnitsPerWeek;
UserInfo4->usri4_workstations[UserInfo->WorkStations.Length / sizeof(WCHAR)] = UNICODE_NULL;
Ptr = (LPWSTR)((ULONG_PTR)Ptr + UserInfo->WorkStations.Length + sizeof(WCHAR));
- RtlTimeToSecondsSince1970(&UserInfo->LastLogon,
- &UserInfo4->usri4_last_logon);
+ if (UserInfo->LastLogon.QuadPart == 0)
+ UserInfo4->usri4_last_logon = 0;
+ else
+ RtlTimeToSecondsSince1970(&UserInfo->LastLogon,
+ &UserInfo4->usri4_last_logon);
- RtlTimeToSecondsSince1970(&UserInfo->LastLogoff,
- &UserInfo4->usri4_last_logoff);
+ if (UserInfo->LastLogoff.QuadPart == 0)
+ UserInfo4->usri4_last_logoff = 0;
+ else
+ RtlTimeToSecondsSince1970(&UserInfo->LastLogoff,
+ &UserInfo4->usri4_last_logoff);
- RtlTimeToSecondsSince1970(&UserInfo->AccountExpires,
- &UserInfo4->usri4_acct_expires);
+ if (UserInfo->AccountExpires.QuadPart == MAXLONGLONG)
+ UserInfo4->usri4_acct_expires = TIMEQ_FOREVER;
+ else
+ RtlTimeToSecondsSince1970(&UserInfo->AccountExpires,
+ &UserInfo4->usri4_acct_expires);
UserInfo4->usri4_max_storage = USER_MAXSTORAGE_UNLIMITED;
UserInfo4->usri4_units_per_week = UserInfo->LogonHours.UnitsPerWeek;
UserInfo11->usri11_parms[UserInfo->Parameters.Length / sizeof(WCHAR)] = UNICODE_NULL;
Ptr = (LPWSTR)((ULONG_PTR)Ptr + UserInfo->Parameters.Length + sizeof(WCHAR));
- RtlTimeToSecondsSince1970(&UserInfo->LastLogon,
- &UserInfo11->usri11_last_logon);
+ if (UserInfo->LastLogon.QuadPart == 0)
+ UserInfo11->usri11_last_logon = 0;
+ else
+ RtlTimeToSecondsSince1970(&UserInfo->LastLogon,
+ &UserInfo11->usri11_last_logon);
- RtlTimeToSecondsSince1970(&UserInfo->LastLogoff,
- &UserInfo11->usri11_last_logoff);
+ if (UserInfo->LastLogoff.QuadPart == 0)
+ UserInfo11->usri11_last_logoff = 0;
+ else
+ RtlTimeToSecondsSince1970(&UserInfo->LastLogoff,
+ &UserInfo11->usri11_last_logoff);
UserInfo11->usri11_bad_pw_count = UserInfo->BadPasswordCount;
UserInfo11->usri11_num_logons = UserInfo->LogonCount;
if (UserInfo2->usri2_acct_expires == TIMEQ_FOREVER)
{
- UserAllInfo.AccountExpires.LowPart = 0;
- UserAllInfo.AccountExpires.HighPart = 0;
+ UserAllInfo.AccountExpires.QuadPart = MAXLONGLONG;
}
else
{
if (UserInfo3->usri3_acct_expires == TIMEQ_FOREVER)
{
- UserAllInfo.AccountExpires.LowPart = 0;
- UserAllInfo.AccountExpires.HighPart = 0;
+ UserAllInfo.AccountExpires.QuadPart = MAXLONGLONG;
}
else
{
if (UserInfo4->usri4_acct_expires == TIMEQ_FOREVER)
{
- UserAllInfo.AccountExpires.LowPart = 0;
- UserAllInfo.AccountExpires.HighPart = 0;
+ UserAllInfo.AccountExpires.QuadPart = MAXLONGLONG;
}
else
{
if (UserInfo22->usri22_acct_expires == TIMEQ_FOREVER)
{
- UserAllInfo.AccountExpires.LowPart = 0;
- UserAllInfo.AccountExpires.HighPart = 0;
+ UserAllInfo.AccountExpires.QuadPart = MAXLONGLONG;
}
else
{
if (UserInfo1017->usri1017_acct_expires == TIMEQ_FOREVER)
{
- UserAllInfo.AccountExpires.LowPart = 0;
- UserAllInfo.AccountExpires.HighPart = 0;
+ UserAllInfo.AccountExpires.QuadPart = MAXLONGLONG;
}
else
{