VirtualBox

Changeset 86102 in vbox for trunk/include/VBox


Ignore:
Timestamp:
Sep 13, 2020 8:26:02 AM (5 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
140334
Message:

VMM/DBGFOS: Add preliminary WinNT specific interface to let the KD remote stub communicate with the OS digger plugin

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/vmm/dbgf.h

    r86098 r86102  
    21732173    /** Kernel message log - DBGFOSIDMESG. */
    21742174    DBGFOSINTERFACE_DMESG,
     2175    /** Windows NT specifics (for the communication with the KD debugger stub). */
     2176    DBGFOSINTERFACE_WINNT,
    21752177    /** The end of the valid entries. */
    21762178    DBGFOSINTERFACE_END,
     
    23612363/** Magic value for DBGFOSIDMESG::32Magic and DBGFOSIDMESG::u32EndMagic. (Kenazburo Oe) */
    23622364#define DBGFOSIDMESG_MAGIC UINT32_C(0x19350131)
     2365
     2366
     2367/**
     2368 * Interface for querying Windows NT guest specifics (DBGFOSINTERFACE_WINNT).
     2369 */
     2370typedef struct DBGFOSIWINNT
     2371{
     2372    /** Trailing magic (DBGFOSIWINNT_MAGIC). */
     2373    uint32_t    u32Magic;
     2374
     2375    /**
     2376     * Queries version information.
     2377     *
     2378     * @returns VBox status code.
     2379     * @param   pThis                           Pointer to the interface structure.
     2380     * @param   pUVM                            The user mode VM handle.
     2381     * @param   puVersMajor                     Where to store the major version part.
     2382     * @param   puVersMinor                     Where to store the minor version part.
     2383     */
     2384    DECLCALLBACKMEMBER(int, pfnQueryVersion,(struct DBGFOSIWINNT *pThis, PUVM pUVM,
     2385                                             uint32_t *puVersMajor, uint32_t *puVersMinor));
     2386
     2387    /**
     2388     * Queries some base kernel pointers.
     2389     *
     2390     * @returns VBox status code.
     2391     * @param   pThis                           Pointer to the interface structure.
     2392     * @param   pUVM                            The user mode VM handle.
     2393     * @param   pGCPtrKernBase                  Where to store the kernel base on success.
     2394     * @param   pGCPtrPsLoadedModuleList        Where to store the pointer to the laoded module list head on success.
     2395     */
     2396    DECLCALLBACKMEMBER(int, pfnQueryKernelPtrs,(struct DBGFOSIWINNT *pThis, PUVM pUVM,
     2397                                                PRTGCUINTPTR pGCPtrKernBase, PRTGCUINTPTR pGCPtrPsLoadedModuleList));
     2398
     2399    /**
     2400     * Queries KPCR and KPCRB pointers for the given vCPU.
     2401     *
     2402     * @returns VBox status code.
     2403     * @param   pThis                           Pointer to the interface structure.
     2404     * @param   pUVM                            The user mode VM handle.
     2405     * @param   idCpu                           The vCPU to query the KPCR/KPCRB for.
     2406     * @param   pKpcr                           Where to store the KPCR pointer on success, optional.
     2407     * @param   pKpcrb                          Where to store the KPCR pointer on success, optional.
     2408     */
     2409    DECLCALLBACKMEMBER(int, pfnQueryKpcrForVCpu,(struct DBGFOSIWINNT *pThis, PUVM pUVM, VMCPUID idCpu,
     2410                                                 PRTGCUINTPTR pKpcr, PRTGCUINTPTR pKpcrb));
     2411
     2412    /**
     2413     * Queries the current thread for the given vCPU.
     2414     *
     2415     * @returns VBox status code.
     2416     * @param   pThis                           Pointer to the interface structure.
     2417     * @param   pUVM                            The user mode VM handle.
     2418     * @param   idCpu                           The vCPU to query the KPCR/KPCRB for.
     2419     * @param   pCurThrd                        Where to store the CurrentThread pointer on success.
     2420     */
     2421    DECLCALLBACKMEMBER(int, pfnQueryCurThrdForVCpu,(struct DBGFOSIWINNT *pThis, PUVM pUVM, VMCPUID idCpu,
     2422                                                    PRTGCUINTPTR pCurThrd));
     2423
     2424    /** Trailing magic (DBGFOSIWINNT_MAGIC). */
     2425    uint32_t    u32EndMagic;
     2426} DBGFOSIWINNT;
     2427/** Pointer to the interface for query kernel log messages (DBGFOSINTERFACE_WINNT). */
     2428typedef DBGFOSIWINNT *PDBGFOSIWINNT;
     2429/** Magic value for DBGFOSIWINNT::32Magic and DBGFOSIWINNT::u32EndMagic. (Dave Cutler) */
     2430#define DBGFOSIWINNT_MAGIC UINT32_C(0x19420313)
    23632431
    23642432
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette