90 lines
1.4 KiB
C
90 lines
1.4 KiB
C
|
/*++
|
|||
|
|
|||
|
Copyright (c) 1991 Microsoft Corporation
|
|||
|
|
|||
|
Module Name:
|
|||
|
|
|||
|
tuser.c
|
|||
|
|
|||
|
Abstract:
|
|||
|
|
|||
|
This module tests windows LookupPrivilegeNameX for a specific
|
|||
|
condition that required a Daytona hotfix.
|
|||
|
|
|||
|
Author:
|
|||
|
|
|||
|
Jim Kelly (JimK) July-27-1994
|
|||
|
|
|||
|
|
|||
|
Revision History:
|
|||
|
|
|||
|
--*/
|
|||
|
|
|||
|
#include <windows.h>
|
|||
|
#include <stdio.h>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
VOID
|
|||
|
DoLookup( DWORD L );
|
|||
|
|
|||
|
CHAR BufferA[0x11000];
|
|||
|
CHAR BufferA1[0x11000];
|
|||
|
WCHAR BufferW[11000];
|
|||
|
|
|||
|
int
|
|||
|
main (void)
|
|||
|
{
|
|||
|
|
|||
|
//
|
|||
|
// Lookup privilege names with certain special buffer lengths.
|
|||
|
|
|||
|
|
|||
|
DoLookup( 0xFFFF );
|
|||
|
DoLookup( 0xFFFC );
|
|||
|
DoLookup( 0x45 );
|
|||
|
DoLookup( 0x10000 );
|
|||
|
DoLookup( 0x10010 );
|
|||
|
DoLookup( 0x2 );
|
|||
|
|
|||
|
return(0);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
VOID
|
|||
|
DoLookup( DWORD L )
|
|||
|
{
|
|||
|
|
|||
|
DWORD
|
|||
|
Language,
|
|||
|
Length;
|
|||
|
|
|||
|
LUID
|
|||
|
PrivilegeId;
|
|||
|
|
|||
|
Language = 0;
|
|||
|
|
|||
|
|
|||
|
Length = L;
|
|||
|
PrivilegeId.HighPart = 0;
|
|||
|
PrivilegeId.LowPart = 7; //SE_TCB_PRIVILEGE;
|
|||
|
|
|||
|
printf("length %d\n", Length);
|
|||
|
printf(" LookupPrivilegeNameA:");
|
|||
|
if (LookupPrivilegeNameA( "", &PrivilegeId, &BufferA[0], &Length)) {
|
|||
|
printf("success (%s)\n", &BufferA[0] );
|
|||
|
} else {
|
|||
|
printf("failed ****\n");
|
|||
|
}
|
|||
|
|
|||
|
printf(" LookupPrivilegeDisplayNameA:");
|
|||
|
if (LookupPrivilegeDisplayNameA( "", &BufferA[0], &BufferA1[0], &Length, &Language)) {
|
|||
|
printf("success (%s)\n", &BufferA1[0] );
|
|||
|
} else {
|
|||
|
printf("failed ****\n");
|
|||
|
}
|
|||
|
|
|||
|
return;
|
|||
|
}
|