403Webshell
Server IP : 209.209.40.120  /  Your IP : 216.73.217.112
Web Server : Microsoft-IIS/10.0
System : Windows NT NEWWWW 10.0 build 17763 (Windows Server 2019) i586
User : NEWWWW$ ( 0)
PHP Version : 8.3.30
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /Program Files (x86)/Windows Kits/10/Include/10.0.19041.0/um/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /Program Files (x86)/Windows Kits/10/Include/10.0.19041.0/um/vmsavedstatedumpdefs.h
/*++

Copyright (c) Microsoft Corporation. All rights reserved.

Module Name:

    VmSavedStateDumpDefs.h

Abstract:

    This module contains the VmSavedSate Dump Provider definitions used by the APIs.

--*/

#ifndef _VMSAVEDSTATEDUMPDEFS_H_
#define _VMSAVEDSTATEDUMPDEFS_H_

#if defined(_MSC_VER) && (_MSC_VER >= 1200)
#pragma once
#endif

#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)

#include <winapifamily.h>

typedef VOID* VM_SAVED_STATE_DUMP_HANDLE;

typedef UINT64 GUEST_VIRTUAL_ADDRESS;
typedef UINT64 GUEST_PHYSICAL_ADDRESS;

//
// Define verbose function pointer type
//
typedef void (*VM_SAVED_STATE_DUMP_VERBOSE_HANDLER)(LPCWSTR Message);

//
// Define paging modes
//
typedef enum PAGING_MODE
{
    Paging_Invalid = 0,
    Paging_NonPaged,
    Paging_32Bit,
    Paging_Pae,
    Paging_Long,
} PAGING_MODE;


//
// Define guest physical memory chunks
//
typedef struct GPA_MEMORY_CHUNK
{
    UINT64  GuestPhysicalStartPageIndex;
    UINT64  PageCount;
} GPA_MEMORY_CHUNK;


//
// Define Virtual Processors dump information
//

typedef enum VIRTUAL_PROCESSOR_ARCH
{
    Arch_Unknown = 0,
    Arch_x86,
    Arch_x64,
} VIRTUAL_PROCESSOR_ARCH;


typedef enum REGISTER_ID_X86
{
    //
    // General Purpose Registers
    //

    X86_RegisterEax = 0,
    X86_RegisterEcx,
    X86_RegisterEdx,
    X86_RegisterEbx,
    X86_RegisterEsp,
    X86_RegisterEbp,
    X86_RegisterEsi,
    X86_RegisterEdi,
    X86_RegisterEip,
    X86_RegisterEFlags,

    //
    // Floating Point Registers
    //

    X86_RegisterLowXmm0,
    X86_RegisterHighXmm0,
    X86_RegisterLowXmm1,
    X86_RegisterHighXmm1,
    X86_RegisterLowXmm2,
    X86_RegisterHighXmm2,
    X86_RegisterLowXmm3,
    X86_RegisterHighXmm3,
    X86_RegisterLowXmm4,
    X86_RegisterHighXmm4,
    X86_RegisterLowXmm5,
    X86_RegisterHighXmm5,
    X86_RegisterLowXmm6,
    X86_RegisterHighXmm6,
    X86_RegisterLowXmm7,
    X86_RegisterHighXmm7,
    X86_RegisterLowXmm8,
    X86_RegisterHighXmm8,
    X86_RegisterLowXmm9,
    X86_RegisterHighXmm9,
    X86_RegisterLowXmm10,
    X86_RegisterHighXmm10,
    X86_RegisterLowXmm11,
    X86_RegisterHighXmm11,
    X86_RegisterLowXmm12,
    X86_RegisterHighXmm12,
    X86_RegisterLowXmm13,
    X86_RegisterHighXmm13,
    X86_RegisterLowXmm14,
    X86_RegisterHighXmm14,
    X86_RegisterLowXmm15,
    X86_RegisterHighXmm15,
    X86_RegisterLowXmmControlStatus,
    X86_RegisterHighXmmControlStatus,
    X86_RegisterLowFpControlStatus,
    X86_RegisterHighFpControlStatus,

    //
    // Control Registers
    //

    X86_RegisterCr0,
    X86_RegisterCr2,
    X86_RegisterCr3,
    X86_RegisterCr4,
    X86_RegisterCr8,
    X86_RegisterEfer,

    //
    // Debug Registers
    //

    X86_RegisterDr0,
    X86_RegisterDr1,
    X86_RegisterDr2,
    X86_RegisterDr3,
    X86_RegisterDr6,
    X86_RegisterDr7,

    //
    // Segment Registers
    //

    X86_RegisterBaseGs,
    X86_RegisterBaseFs,
    X86_RegisterSegCs,
    X86_RegisterSegDs,
    X86_RegisterSegEs,
    X86_RegisterSegFs,
    X86_RegisterSegGs,
    X86_RegisterSegSs,
    X86_RegisterTr,
    X86_RegisterLdtr,

    //
    // Table Registers
    //

    X86_RegisterBaseIdtr,
    X86_RegisterLimitIdtr,
    X86_RegisterBaseGdtr,
    X86_RegisterLimitGdtr,

    //
    // Register Count
    //

    X86_RegisterCount,
} REGISTER_ID_X86;


typedef enum REGISTER_ID_X64
{
    //
    // General Purpose Registers
    //

    X64_RegisterRax = 0,
    X64_RegisterRcx,
    X64_RegisterRdx,
    X64_RegisterRbx,
    X64_RegisterRsp,
    X64_RegisterRbp,
    X64_RegisterRsi,
    X64_RegisterRdi,
    X64_RegisterR8,
    X64_RegisterR9,
    X64_RegisterR10,
    X64_RegisterR11,
    X64_RegisterR12,
    X64_RegisterR13,
    X64_RegisterR14,
    X64_RegisterR15,
    X64_RegisterRip,
    X64_RegisterRFlags,

    //
    // Floating Point Registers
    //

    X64_RegisterLowXmm0,
    X64_RegisterHighXmm0,
    X64_RegisterLowXmm1,
    X64_RegisterHighXmm1,
    X64_RegisterLowXmm2,
    X64_RegisterHighXmm2,
    X64_RegisterLowXmm3,
    X64_RegisterHighXmm3,
    X64_RegisterLowXmm4,
    X64_RegisterHighXmm4,
    X64_RegisterLowXmm5,
    X64_RegisterHighXmm5,
    X64_RegisterLowXmm6,
    X64_RegisterHighXmm6,
    X64_RegisterLowXmm7,
    X64_RegisterHighXmm7,
    X64_RegisterLowXmm8,
    X64_RegisterHighXmm8,
    X64_RegisterLowXmm9,
    X64_RegisterHighXmm9,
    X64_RegisterLowXmm10,
    X64_RegisterHighXmm10,
    X64_RegisterLowXmm11,
    X64_RegisterHighXmm11,
    X64_RegisterLowXmm12,
    X64_RegisterHighXmm12,
    X64_RegisterLowXmm13,
    X64_RegisterHighXmm13,
    X64_RegisterLowXmm14,
    X64_RegisterHighXmm14,
    X64_RegisterLowXmm15,
    X64_RegisterHighXmm15,
    X64_RegisterLowXmmControlStatus,
    X64_RegisterHighXmmControlStatus,
    X64_RegisterLowFpControlStatus,
    X64_RegisterHighFpControlStatus,

    //
    // Control Registers
    //

    X64_RegisterCr0,
    X64_RegisterCr2,
    X64_RegisterCr3,
    X64_RegisterCr4,
    X64_RegisterCr8,
    X64_RegisterEfer,

    //
    // Debug Registers
    //

    X64_RegisterDr0,
    X64_RegisterDr1,
    X64_RegisterDr2,
    X64_RegisterDr3,
    X64_RegisterDr6,
    X64_RegisterDr7,

    //
    // Segment Registers
    //

    X64_RegisterBaseGs,
    X64_RegisterBaseFs,
    X64_RegisterSegCs,
    X64_RegisterSegDs,
    X64_RegisterSegEs,
    X64_RegisterSegFs,
    X64_RegisterSegGs,
    X64_RegisterSegSs,
    X64_RegisterTr,
    X64_RegisterLdtr,

    //
    // Table Registers
    //

    X64_RegisterBaseIdtr,
    X64_RegisterLimitIdtr,
    X64_RegisterBaseGdtr,
    X64_RegisterLimitGdtr,

    //
    // Register Count
    //

    X64_RegisterCount,
} REGISTER_ID_X64;


/// This struct, when used in a call to GetRegisterValue, its Architecture and RegisterId fields
/// are inputs and the register value is an output.
typedef struct VIRTUAL_PROCESSOR_REGISTER
{
    VIRTUAL_PROCESSOR_ARCH  Architecture;
    UINT64                  RegisterValue;
    union{
        DWORD               RegisterId;
        REGISTER_ID_X86     RegisterId_x86;
        REGISTER_ID_X64     RegisterId_x64;
    };
} VIRTUAL_PROCESSOR_REGISTER;

#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#pragma endregion

#endif // _VMSAVEDSTATEDUMPDEFS_H_

Youez - 2016 - github.com/yon3zu
LinuXploit