Kernel.cs

   1 using System;
   2 using System.Runtime.InteropServices;
   3 using System.Text;
   4 
   5 using HANDLE = System.IntPtr;
   6 using HWND = System.IntPtr;
   7 
   8 namespace Win32
   9 {
  10     public struct OVERLAPPED 
  11     {
  12         public int Internal;
  13         public int InternalHigh;
  14         public int offset;
  15         public int OffsetHigh;
  16         public HANDLE hEvent;
  17     }
  18     public struct SECURITY_ATTRIBUTES 
  19     {
  20         public int nLength;
  21         public int lpSecurityDescriptor;
  22         public int bInheritHandle; 
  23     }
  24     public struct PROCESS_INFORMATION 
  25     {
  26         public HANDLE hProcess;
  27         public HANDLE hThread;
  28         public int dwProcessId;
  29         public int dwThreadId;
  30     }
  31     public struct COMMPROP 
  32     {
  33         public short wPacketLength;
  34         public short wPacketVersion;
  35         public int dwServiceMask;
  36         public int dwReserved1;
  37         public int dwMaxTxQueue;
  38         public int dwMaxRxQueue;
  39         public int dwMaxBaud;
  40         public int dwProvSubType;
  41         public int dwProvCapabilities;
  42         public int dwSettableParams;
  43         public int dwSettableBaud;
  44         public short wSettableData;
  45         public short wSettableStopParity;
  46         public int dwCurrentTxQueue;
  47         public int dwCurrentRxQueue;
  48         public int dwProvSpec1;
  49         public int dwProvSpec2;
  50         [MarshalAs(UnmanagedType.ByValArray, SizeConst=1)] public short[] wcProvChar; 
  51     }
  52     public struct COMSTAT 
  53     {
  54         public int fBitFields; 
  55         public int cbInQue;
  56         public int cbOutQue;
  57     }
  58     public struct DCB 
  59     {
  60         public int DCBlength;
  61         public int BaudRate;
  62         public int fBitFields; 
  63         public short wReserved;
  64         public short XonLim;
  65         public short XoffLim;
  66         public byte ByteSize;
  67         public byte Parity;
  68         public byte StopBits;
  69         public byte XonChar;
  70         public byte XoffChar;
  71         public byte ErrorChar;
  72         public byte EofChar;
  73         public byte EvtChar;
  74         public short wReserved1; 
  75     }
  76     public struct COMMTIMEOUTS 
  77     {
  78         public int ReadIntervalTimeout;
  79         public int ReadTotalTimeoutMultiplier;
  80         public int ReadTotalTimeoutConstant;
  81         public int WriteTotalTimeoutMultiplier;
  82         public int WriteTotalTimeoutConstant;
  83     }
  84     public struct SYSTEM_INFO 
  85     {
  86         public int dwOemID;
  87         public int dwPageSize;
  88         public int lpMinimumApplicationAddress;
  89         public int lpMaximumApplicationAddress;
  90         public int dwActiveProcessorMask;
  91         public int dwNumberOrfProcessors;
  92         public int dwProcessorType;
  93         public int dwAllocationGranularity;
  94         public int dwReserved;
  95     }
  96     #region Global Memory Flags
  97     #endregion
  98     public struct MEMORYSTATUS 
  99     {
 100         public int dwLength;
 101         public int dwMemoryLoad;
 102         public int dwTotalPhys;
 103         public int dwAvailPhys;
 104         public int dwTotalPageFile;
 105         public int dwAvailPageFile;
 106         public int dwTotalVirtual;
 107         public int dwAvailVirtual;
 108     }
 109     public struct GENERIC_MAPPING 
 110     {
 111         public int GenericRead;
 112         public int GenericWrite;
 113         public int GenericExecute;
 114         public int GenericAll;
 115     }
 116     public struct LUID 
 117     {
 118         public int LowPart;
 119         public int HighPart;
 120     }
 121     public struct LUID_AND_ATTRIBUTES 
 122     {
 123         public LUID pLuid;
 124         public int Attributes;
 125     }
 126     public struct ACL 
 127     {
 128         public byte AclRevision;
 129         public byte Sbz1;
 130         public short AclSize;
 131         public short AceCount;
 132         public short Sbz2;
 133     }
 134     public struct ACE_HEADER 
 135     {
 136         public byte AceType;
 137         public byte AceFlags;
 138         public int AceSize;
 139     }
 140     public struct ACCESS_ALLOWED_ACE 
 141     {
 142         public ACE_HEADER Header;
 143         public int Mask;
 144         public int SidStart;
 145     }
 146     public struct ACCESS_DENIED_ACE 
 147     {
 148         public ACE_HEADER Header;
 149         public int Mask;
 150         public int SidStart;
 151     }
 152     public struct SYSTEM_AUDIT_ACE 
 153     {
 154         public ACE_HEADER Header;
 155         public int Mask;
 156         public int SidStart;
 157     }
 158     public struct SYSTEM_ALARM_ACE 
 159     {
 160         public ACE_HEADER Header;
 161         public int Mask;
 162         public int SidStart;
 163     }
 164     public struct ACL_REVISION_INFORMATION 
 165     {
 166         public int AclRevision;
 167     }
 168     public struct ACL_SIZE_INFORMATION 
 169     {
 170         public int AceCount;
 171         public int AclBytesInUse;
 172         public int AclBytesFree;
 173     }
 174     public struct SECURITY_DESCRIPTOR 
 175     {
 176         public byte Revision;
 177         public byte Sbz1;
 178         public int Control;
 179         public int Owner;
 180         public int Group;
 181         public ACL Sacl;
 182         public ACL Dacl;
 183     }
 184     public struct PRIVILEGE_SET 
 185     {
 186         public int PrivilegeCount;
 187         public int Control;
 188         [MarshalAs(UnmanagedType.ByValArray, SizeConst=1)] public LUID_AND_ATTRIBUTES[] Privilege;
 189     }
 190     public struct EXCEPTION_RECORD 
 191     {
 192         public int ExceptionCode;
 193         public int ExceptionFlags;
 194         public int pExceptionRecord;    
 195         public int ExceptionAddress;
 196         public int NumberParameters;
 197         [MarshalAs(UnmanagedType.ByValArray, SizeConst=15)] public int [] ExceptionInformation;
 198     }
 199     public struct EXCEPTION_DEBUG_INFO 
 200     {
 201         public EXCEPTION_RECORD pExceptionRecord;
 202         public int dwFirstChance;
 203     }
 204     public struct CREATE_THREAD_DEBUG_INFO 
 205     {
 206         public HANDLE hThread;
 207         public int lpThreadLocalBase;
 208         public int lpStartAddress;
 209     }
 210     public struct CREATE_PROCESS_DEBUG_INFO 
 211     {
 212         public HANDLE hFile;
 213         public HANDLE hProcess;
 214         public HANDLE hThread;
 215         public int lpBaseOfImage;
 216         public int dwDebugInfoFileOffset;
 217         public int nDebugInfoSize;
 218         public int lpThreadLocalBase;
 219         public int lpStartAddress;
 220         public int lpImageName;
 221         public short fUnicode;
 222     }
 223     public struct EXIT_THREAD_DEBUG_INFO 
 224     {
 225         public int dwExitCode;
 226     }
 227     public struct EXIT_PROCESS_DEBUG_INFO 
 228     {
 229         public int dwExitCode;
 230     }
 231     public struct LOAD_DLL_DEBUG_INFO 
 232     {
 233         public HANDLE hFile;
 234         public int lpBaseOfDll;
 235         public int dwDebugInfoFileOffset;
 236         public int nDebugInfoSize;
 237         public int lpImageName;
 238         public short fUnicode;
 239     }
 240     public struct UNLOAD_DLL_DEBUG_INFO 
 241     {
 242         public int lpBaseOfDll;
 243     }
 244     public struct OUTPUT_DEBUG_STRING_INFO 
 245     {
 246         public string lpDebugStringData;
 247         public short fUnicode;
 248         public short nDebugStringLength;
 249     }
 250     public struct RIP_INFO 
 251     {
 252         public int dwError;
 253         public int dwType;
 254     }
 255     public struct OFSTRUCT 
 256     {
 257         public byte cBytes;
 258         public byte fFixedDisk;
 259         public short nErrCode;
 260         public short Reserved1;
 261         public short Reserved2;
 262         [MarshalAs(UnmanagedType.ByValArray, SizeConst=128)] public byte[] szPathName;
 263     }
 264     public struct CRITICAL_SECTION 
 265     {
 266         public int pDebugInfo;
 267         public int LockCount;
 268         public int RecursionCount;
 269         public int pOwningThread;
 270         public int pLockSemaphore;
 271         public int Reserved;
 272     }
 273     public struct BY_HANDLE_FILE_INFORMATION 
 274     {
 275         public int dwFileAttributes;
 276         public FILETIME ftCreationTime;
 277         public FILETIME ftLastAccessTime;
 278         public FILETIME ftLastWriteTime;
 279         public int dwVolumeSerialNumber;
 280         public int nFileSizeHigh;
 281         public int nFileSizeLow;
 282         public int nNumberOfLinks;
 283         public int nFileIndexHigh;
 284         public int nFileIndexLow;
 285     }
 286     public struct MEMORY_BASIC_INFORMATION 
 287     {
 288         public int BaseAddress;
 289         public int AllocationBase;
 290         public int AllocationProtect;
 291         public int RegionSize;
 292         public int State;
 293         public int Protect;
 294         public int lType;
 295     }
 296     public struct EVENTLOGRECORD 
 297     {
 298         public int Length; 
 299         public int Reserved; 
 300         public int RecordNumber; 
 301         public int TimeGenerated; 
 302         public int TimeWritten; 
 303         public int EventID;
 304         public short EventType;
 305         public short NumStrings;
 306         public short EventCategory;
 307         public short ReservedFlags; 
 308         public int ClosingRecordNumber; 
 309         public int StringOffset; 
 310         public int UserSidLength;
 311         public int UserSidOffset;
 312         public int DataLength;
 313         public int DataOffset; 
 314     }
 315     public struct TOKEN_GROUPS 
 316     {
 317         public int GroupCount;
 318         [MarshalAs(UnmanagedType.ByValArray, SizeConst=1)]     public SID_AND_ATTRIBUTES[] Groups;
 319     }
 320     public struct TOKEN_PRIVILEGES 
 321     {
 322         public int PrivilegeCount;
 323         [MarshalAs(UnmanagedType.ByValArray, SizeConst=1)] public LUID_AND_ATTRIBUTES[] Privileges;
 324     }
 325     public struct CONTEXT 
 326     {
 327         public double FltF0;
 328         public double FltF1;
 329         public double FltF2;
 330         public double FltF3;
 331         public double FltF4;
 332         public double FltF5;
 333         public double FltF6;
 334         public double FltF7;
 335         public double FltF8;
 336         public double FltF9;
 337         public double FltF10;
 338         public double FltF11;
 339         public double FltF12;
 340         public double FltF13;
 341         public double FltF14;
 342         public double FltF15;
 343         public double FltF16;
 344         public double FltF17;
 345         public double FltF18;
 346         public double FltF19;
 347         public double FltF20;
 348         public double FltF21;
 349         public double FltF22;
 350         public double FltF23;
 351         public double FltF24;
 352         public double FltF25;
 353         public double FltF26;
 354         public double FltF27;
 355         public double FltF28;
 356         public double FltF29;
 357         public double FltF30;
 358         public double FltF31;
 359         public double IntV0;
 360         public double IntT0;
 361         public double IntT1;
 362         public double IntT2;
 363         public double IntT3;
 364         public double IntT4;
 365         public double IntT5;
 366         public double IntT6;
 367         public double IntT7;
 368         public double IntS0;
 369         public double IntS1;
 370         public double IntS2;
 371         public double IntS3;
 372         public double IntS4;
 373         public double IntS5;
 374         public double IntFp;
 375         public double IntA0;
 376         public double IntA1;
 377         public double IntA2;
 378         public double IntA3;
 379         public double IntA4;
 380         public double IntA5;
 381         public double IntT8;
 382         public double IntT9;
 383         public double IntT10;
 384         public double IntT11;
 385         public double IntRa;
 386         public double IntT12;
 387         public double IntAt;
 388         public double IntGp;
 389         public double IntSp;
 390         public double IntZero;
 391         public double Fpcr;
 392         public double SoftFpcr;
 393         public double Fir;
 394         public int Psr;
 395         public int ContextFlags;
 396         [MarshalAs(UnmanagedType.ByValArray, SizeConst=4)] public int []Fill;
 397     }
 398     public struct EXCEPTION_POINTERS 
 399     {
 400         public EXCEPTION_RECORD pExceptionRecord;
 401         public CONTEXT ContextRecord;
 402     }
 403     public struct LDT_BYTES    
 404     { 
 405         public byte BaseMid;
 406         public byte Flags1;
 407         public byte Flags2;
 408         public byte BaseHi;
 409     }
 410     public struct LDT_ENTRY 
 411     {
 412         public short LimitLow;
 413         public short BaseLow;
 414         public int HighWord;    
 415     }
 416     public struct TIME_ZONE_INFORMATION 
 417     {
 418         public int Bias;
 419         [MarshalAs(UnmanagedType.ByValArray, SizeConst=32)] public short[] StandardName;
 420         public SYSTEMTIME StandardDate;
 421         public int StandardBias;
 422         [MarshalAs(UnmanagedType.ByValArray, SizeConst=32)] public short[] DaylightName;
 423         public SYSTEMTIME DaylightDate;
 424         public int DaylightBias;
 425     }
 426     public struct WIN32_STREAM_ID 
 427     {
 428         public int dwStreamID;
 429         public int dwStreamAttributes;
 430         public int dwStreamSizeLow;
 431         public int dwStreamSizeHigh;
 432         public int dwStreamNameSize;
 433         public byte cStreamName;
 434     }
 435     public struct STARTUPINFO 
 436     {
 437         public int cb;
 438         public string lpReserved;
 439         public string lpDesktop;
 440         public string lpTitle;
 441         public int dwX;
 442         public int dwY;
 443         public int dwXSize;
 444         public int dwYSize;
 445         public int dwXCountChars;
 446         public int dwYCountChars;
 447         public int dwFillAttribute;
 448         public int dwFlags;
 449         public short wShowWindow;
 450         public short cbReserved2;
 451         public int lpReserved2;
 452         public HANDLE hStdInput;
 453         public HANDLE hStdOutput;
 454         public HANDLE hStdError;
 455     }
 456     public struct CPINFO 
 457     {
 458         public int MaxCharSize; 
 459         [MarshalAs(UnmanagedType.ByValArray, SizeConst=Kernel.MAX_DEFAULTCHAR)] public byte[] DefaultChar; 
 460         [MarshalAs(UnmanagedType.ByValArray, SizeConst=Kernel.MAX_LEADBYTES)] public byte[] LeadByte; 
 461     }
 462     public struct NUMBERFMT 
 463     {
 464         public int NumDigits; 
 465         public int LeadingZero; 
 466         public int Grouping; 
 467         public string lpDecimalSep; 
 468         public string lpThousandSep; 
 469         public int NegativeOrder; 
 470     }
 471     public struct CURRENCYFMT 
 472     {
 473         public int NumDigits; 
 474         public int LeadingZero; 
 475         public int Grouping; 
 476         public string lpDecimalSep; 
 477         public string lpThousandSep; 
 478         public int NegativeOrder; 
 479         public int PositiveOrder; 
 480         public string lpCurrencySymbol; 
 481     }
 482     public struct COORD 
 483     {
 484         public short x;
 485         public short y;
 486     }
 487     public struct SMALL_RECT 
 488     {
 489         public short Left;
 490         public short Top;
 491         public short Right;
 492         public short Bottom;
 493     }
 494     public struct KEY_EVENT_RECORD 
 495     {
 496         public int bKeyDown;
 497         public short wRepeatCount;
 498         public short wVirtualKeyCode;
 499         public short wVirtualScanCode;
 500         public byte uChar;
 501         public int dwControlKeyState;
 502     }
 503     public struct MOUSE_EVENT_RECORD 
 504     {
 505         public COORD dwMousePosition;
 506         public int dwButtonState;
 507         public int dwControlKeyState;
 508         public int dwEventFlags;
 509     }
 510     public struct WINDOW_BUFFER_SIZE_RECORD 
 511     {
 512         public COORD dwSize;
 513     }
 514     public struct MENU_EVENT_RECORD 
 515     {
 516         public int dwCommandId;
 517     }
 518     public struct FOCUS_EVENT_RECORD 
 519     {
 520         public int bSetFocus;
 521     }
 522     public struct CHAR_INFO 
 523     {
 524         public short Char;
 525         public short Attributes;
 526     }
 527     public struct CONSOLE_SCREEN_BUFFER_INFO 
 528     {
 529         public COORD dwSize;
 530         public COORD dwCursorPosition;
 531         public short wAttributes;
 532         public SMALL_RECT srWindow;
 533         public COORD dwMaximumWindowSize;
 534     }
 535     public struct CONSOLE_CURSOR_INFO 
 536     {
 537         public int dwSize;
 538         public int bVisible;
 539     }
 540     public struct SID_IDENTIFIER_AUTHORITY 
 541     {
 542         [MarshalAs(UnmanagedType.ByValArray, SizeConst=6)] public byte[] Value;
 543     }
 544     public struct SID_AND_ATTRIBUTES 
 545     {
 546         public int Sid;
 547         public int Attributes;
 548     }
 549     public struct WIN32_FIND_DATA 
 550     {
 551         public int dwFileAttributes;
 552         public FILETIME ftCreationTime; 
 553         public FILETIME ftLastAccessTime; 
 554         public FILETIME ftLastWriteTime; 
 555         public int nFileSizeHigh;
 556         public int nFileSizeLow;
 557         public int dwReserved0;
 558         public int dwReserved1;
 559         [MarshalAs(UnmanagedType.ByValTStr, SizeConst=Kernel.MAX_PATH)] 
 560         public string cFileName; 
 561         [MarshalAs(UnmanagedType.ByValTStr, SizeConst=14)] 
 562         public string cAlternate; 
 563     }
 564     public struct COMMCONFIG 
 565     {
 566         public int dwSize;
 567         public short wVersion;
 568         public short wReserved;
 569         public DCB dcbx;
 570         public int dwProviderSubType;
 571         public int dwProviderOffset;
 572         public int dwProviderSize;
 573         public byte wcProviderData;
 574     }
 575     public struct SERVICE_STATUS 
 576     {
 577         public int dwServiceType;
 578         public int dwCurrentState;
 579         public int dwControlsAccepted;
 580         public int dwWin32ExitCode;
 581         public int dwServiceSpecificExitCode;
 582         public int dwCheckPoint;
 583         public int dwWaitHint;
 584     }
 585     public struct ENUM_SERVICE_STATUS 
 586     {
 587         public string lpServiceName;
 588         public string lpDisplayName;
 589         public SERVICE_STATUS ServiceStatus;
 590     }
 591     public struct QUERY_SERVICE_LOCK_STATUS 
 592     {
 593         public int fIsLocked;
 594         public string lpLockOwner;
 595         public int dwLockDuration;
 596     }
 597     public struct QUERY_SERVICE_CONFIG 
 598     {
 599         public int dwServiceType;
 600         public int dwStartType;
 601         public int dwErrorControl;
 602         public string lpBinaryPathName;
 603         public string lpLoadOrderGroup;
 604         public int dwTagId;
 605         public string lpDependencies;
 606         public string lpServiceStartName;
 607         public string lpDisplayName;
 608     }
 609     public struct SERVICE_TABLE_ENTRY 
 610     {
 611         public string lpServiceName;
 612         public int lpServiceProc;
 613     }
 614     public struct LARGE_INTEGER 
 615     {
 616         public int lowpart;
 617         public int highpart;
 618     }
 619     public struct PERF_DATA_BLOCK 
 620     {
 621         [MarshalAs(UnmanagedType.ByValTStr, SizeConst=4)] public string Signature; 
 622         public int LittleEndian;
 623         public int Version;
 624         public int Revision;
 625         public int TotalByteLength;
 626         public int HeaderLength;
 627         public int NumObjectTypes;
 628         public int DefaultObject;
 629         public SYSTEMTIME SystemTime;
 630         public LARGE_INTEGER PerfTime;
 631         public LARGE_INTEGER PerfFreq;
 632         public LARGE_INTEGER PerTime100nSec;
 633         public int SystemNameLength;
 634         public int SystemNameOffset;
 635     }
 636     public struct PERF_OBJECT_TYPE 
 637     {
 638         public int TotalByteLength;
 639         public int DefinitionLength;
 640         public int HeaderLength;
 641         public int ObjectNameTitleIndex;
 642         public string ObjectNameTitle;
 643         public int ObjectHelpTitleIndex;
 644         public string ObjectHelpTitle;
 645         public int DetailLevel;
 646         public int NumCounters;
 647         public int DefaultCounter;
 648         public int NumInstances;
 649         public int CodePage;
 650         public LARGE_INTEGER PerfTime;
 651         public LARGE_INTEGER PerfFreq;
 652     }
 653     public struct PERF_COUNTER_DEFINITION 
 654     {
 655         public int ByteLength;
 656         public int CounterNameTitleIndex;
 657         public string CounterNameTitle;
 658         public int CounterHelpTitleIndex;
 659         public string CounterHelpTitle;
 660         public int DefaultScale;
 661         public int DetailLevel;
 662         public int CounterType;
 663         public int CounterSize;
 664         public int CounterOffset;
 665     }
 666     public struct PERF_INSTANCE_DEFINITION 
 667     {
 668         public int ByteLength;
 669         public int ParentObjectTitleIndex;
 670         public int ParentObjectInstance;
 671         public int UniqueID;
 672         public int NameOffset;
 673         public int NameLength;
 674     }
 675     public struct PERF_COUNTER_BLOCK 
 676     {
 677         public int ByteLength;
 678     }
 679     public struct OSVERSIONINFO 
 680     {
 681         public int dwOSVersionInfoSize;
 682         public int dwMajorVersion;
 683         public int dwMinorVersion;
 684         public int dwBuildNumber;
 685         public int dwPlatformId;
 686         [MarshalAs(UnmanagedType.ByValTStr, SizeConst=128)] public string szCSDVersion; 
 687     }
 688     public struct SYSTEM_POWER_STATUS 
 689     {
 690         public byte ACLineStatus;
 691         public byte BatteryFlag;
 692         public byte BatteryLifePercent;
 693         public byte Reserved1;
 694         public int BatteryLifeTime;
 695         public int BatteryFullLifeTime;
 696     }
 697 
 698     public abstract class AdvApi
 699     {
 700         [DllImport("AdvApi32")] public static extern int ImpersonateLoggedOnUser(HANDLE hToken);
 701         [DllImport("advapi32")] public static extern int IsTextUnicode(IntPtr lpBuffer, int cb, ref int lpi);
 702         [DllImport("advapi32")] public static extern int LogonUser(string lpszUsername, string lpszDomain, string lpszPassword, int dwLogonType, int dwLogonProvider, ref int phToken);
 703         [DllImport("advapi32")] public static extern int NotifyChangeEventLog(HANDLE hEventLog, HANDLE hEvent);
 704         [DllImport("advapi32")] public static extern int SetThreadToken(int Thread, int Token);
 705         [DllImport("advapi32")] public static extern Byte GetSidSubAuthorityCount(IntPtr pSid);
 706         [DllImport("advapi32")] public static extern SID_IDENTIFIER_AUTHORITY GetSidIdentifierAuthority(IntPtr pSid);
 707         [DllImport("advapi32")] public static extern int AbortSystemShutdown(string lpMachineName);
 708         [DllImport("advapi32")] public static extern int AccessCheck(ref SECURITY_DESCRIPTOR pSecurityDescriptor, int ClientToken, int DesiredAccess, GENERIC_MAPPING GenericMapping, PRIVILEGE_SET PrivilegeSet, int PrivilegeSetLength, int GrantedAccess, int Status);
 709         [DllImport("advapi32")] public static extern int AccessCheckAndAuditAlarm(string SubsystemName, IntPtr HandleId, string ObjectTypeName, string ObjectName, SECURITY_DESCRIPTOR SecurityDescriptor, int DesiredAccess, GENERIC_MAPPING GenericMapping, int ObjectCreation, int GrantedAccess, int AccessStatus, ref int pfGenerateOnClose);
 710         [DllImport("advapi32")] public static extern int AddAccessAllowedAce(ref ACL pAcl, int dwAceRevision, int AccessMask, IntPtr pSid);
 711         [DllImport("advapi32")] public static extern int AddAccessDeniedAce(ref ACL pAcl, int dwAceRevision, int AccessMask, IntPtr pSid);
 712         [DllImport("advapi32")] public static extern int AddAce(ref ACL pAcl, int dwAceRevision, int dwStartingAceIndex, IntPtr pAceList, int nAceListLength);
 713         [DllImport("advapi32")] public static extern int AddAuditAccessAce(ref ACL pAcl, int dwAceRevision, int dwAccessMask, IntPtr pSid, int bAuditSuccess, int bAuditFailure);
 714         [DllImport("advapi32")] public static extern int AdjustTokenGroups(int TokenHandle, int ResetToDefault, TOKEN_GROUPS NewState, int BufferLength, TOKEN_GROUPS PreviousState, int ReturnLength);
 715         [DllImport("advapi32")] public static extern int AdjustTokenPrivileges(int TokenHandle, int DisableAllPrivileges, TOKEN_PRIVILEGES NewState, int BufferLength, TOKEN_PRIVILEGES PreviousState, int ReturnLength);
 716         [DllImport("advapi32")] public static extern int AllocateAndInitializeSid(ref SID_IDENTIFIER_AUTHORITY pIdentifierAuthority, Byte nSubAuthorityCount, int nSubAuthority0, int nSubAuthority1, int nSubAuthority2, int nSubAuthority3, int nSubAuthority4, int nSubAuthority5, int nSubAuthority6, int nSubAuthority7, ref int lpPSid);
 717         [DllImport("advapi32")] public static extern int AllocateLocallyUniqueId(LARGE_INTEGER Luid);
 718         [DllImport("advapi32")] public static extern int AreAllAccessesGranted(int GrantedAccess, int DesiredAccess);
 719         [DllImport("advapi32")] public static extern int AreAnyAccessesGranted(int GrantedAccess, int DesiredAccess);
 720         [DllImport("advapi32")] public static extern int BackupEventLog(HANDLE hEventLog, string lpBackupFileName);
 721         [DllImport("advapi32")] public static extern int ChangeServiceConfig(HANDLE hService, int dwServiceType, int dwStartType, int dwErrorControl, string lpBinaryPathName, string lpLoadOrderGroup, ref int lpdwTagId, string lpDependencies, string lpServiceStartName, string lpPassword, string lpDisplayName);
 722         [DllImport("advapi32")] public static extern int ClearEventLog(HANDLE hEventLog, string lpBackupFileName);
 723         [DllImport("advapi32")] public static extern int CloseEventLog(HANDLE hEventLog);
 724         [DllImport("advapi32")] public static extern int CloseServiceHandle(HANDLE hSCObject);
 725         [DllImport("advapi32")] public static extern int ControlService(HANDLE hService, int dwControl, ref SERVICE_STATUS lpServiceStatus);
 726         [DllImport("advapi32")] public static extern int CopySid(int nDestinationSidLength, IntPtr pDestinationSid, IntPtr pSourceSid);
 727         [DllImport("advapi32")] public static extern int CreatePrivateObjectSecurity(ref SECURITY_DESCRIPTOR ParentDescriptor, SECURITY_DESCRIPTOR CreatorDescriptor, SECURITY_DESCRIPTOR NewDescriptor, int IsDirectoryObject, int Token, GENERIC_MAPPING GenericMapping);
 728         [DllImport("advapi32")] public static extern int CreateProcessAsUser(HANDLE hToken, string lpApplicationName, string lpCommandLine, ref SECURITY_ATTRIBUTES lpProcessAttributes, ref SECURITY_ATTRIBUTES lpThreadAttributes, int bInheritHandles, int dwCreationFlags, string lpEnvironment, string lpCurrentDirectory, ref STARTUPINFO lpStartupInfo, ref PROCESS_INFORMATION lpProcessInformation);
 729         [DllImport("advapi32")] public static extern int CreateServ

相关文章: