windows-nt/Source/XPSP1/NT/sdktools/debuggers/ntsd64/dbgkdapi.h
2020-09-26 16:20:57 +08:00

299 lines
5.2 KiB
C

//----------------------------------------------------------------------------
//
// dbgkdapi.h
//
// Copyright (C) Microsoft Corporation, 1997-2001.
//
//----------------------------------------------------------------------------
#ifndef _DBGKDAPI_H_
#define _DBGKDAPI_H_
extern BOOL DbgKdApi64;
extern ULONG g_KdMaxPacketType;
extern ULONG g_KdMaxStateChange;
extern ULONG g_KdMaxManipulate;
NTSTATUS
DbgKdCrash(
DWORD BugCheckCode
);
NTSTATUS
DbgKdWaitStateChange(
OUT PDBGKD_ANY_WAIT_STATE_CHANGE StateChange,
OUT PVOID Buffer,
IN ULONG BufferLength,
IN BOOL SuspendEngine
);
NTSTATUS
DbgKdSetSpecialCalls (
IN ULONG NumSpecialCalls,
IN PULONG64 Calls
);
NTSTATUS
DbgKdReadVirtualMemoryNow(
IN ULONG64 TargetBaseAddress,
OUT PVOID UserInterfaceBuffer,
IN ULONG TransferCount,
OUT PULONG ActualBytesRead
);
NTSTATUS
NTAPI
DbgKdWriteVirtualMemoryNow(
IN ULONG64 TargetBaseAddress,
OUT PVOID UserInterfaceBuffer,
IN ULONG TransferCount,
OUT PULONG ActualBytesWritten OPTIONAL
);
NTSTATUS
DbgKdReadVirtualTranslatedMemory(
IN ULONG64 TargetBaseAddress,
OUT PVOID UserInterfaceBuffer,
IN ULONG TransferCount,
OUT PULONG ActualBytesRead
);
NTSTATUS
DbgKdWriteVirtualTranslatedMemory(
IN ULONG64 TargetBaseAddress,
OUT PVOID UserInterfaceBuffer,
IN ULONG TransferCount,
OUT PULONG ActualBytesWritten OPTIONAL
);
NTSTATUS
NTAPI
DbgKdReadPhysicalMemory(
IN ULONGLONG TargetBaseAddress,
OUT PVOID UserInterfaceBuffer,
IN ULONG TransferCount,
OUT PULONG ActualBytesRead OPTIONAL
);
NTSTATUS
NTAPI
DbgKdWritePhysicalMemory(
IN ULONGLONG TargetBaseAddress,
OUT PVOID UserInterfaceBuffer,
IN ULONG TransferCount,
OUT PULONG ActualBytesWritten OPTIONAL
);
NTSTATUS
NTAPI
DbgKdCheckLowMemory(
);
NTSTATUS
NTAPI
DbgKdGetVersion(
PDBGKD_GET_VERSION64 GetVersion
);
NTSTATUS
DbgKdReadIoSpace(
IN ULONG64 IoAddress,
OUT PVOID ReturnedData,
IN ULONG DataSize
);
NTSTATUS
DbgKdWriteIoSpace(
IN ULONG64 IoAddress,
IN ULONG DataValue,
IN ULONG DataSize
);
NTSTATUS
DbgKdReadIoSpaceExtended(
IN ULONG64 IoAddress,
OUT PVOID ReturnedData,
IN ULONG DataSize,
IN INTERFACE_TYPE InterfaceType,
IN ULONG BusNumber,
IN ULONG AddressSpace
);
NTSTATUS
DbgKdWriteIoSpaceExtended(
IN ULONG64 IoAddress,
IN ULONG DataValue,
IN ULONG DataSize,
IN INTERFACE_TYPE InterfaceType,
IN ULONG BusNumber,
IN ULONG AddressSpace
);
NTSTATUS
DbgKdReadControlSpace(
IN ULONG Processor,
IN ULONG OffsetAddress,
OUT PVOID UserInterfaceBuffer,
IN ULONG TransferCount,
OUT PULONG ActualBytesRead
);
NTSTATUS
DbgKdWriteControlSpace(
IN ULONG Processor,
IN ULONG OffsetAddress,
OUT PVOID UserInterfaceBuffer,
IN ULONG TransferCount,
OUT PULONG ActualBytesWritten
);
NTSTATUS
DbgKdGetBusData(
IN ULONG BusDataType,
IN ULONG BusNumber,
IN ULONG SlotNumber,
OUT PVOID Buffer,
IN ULONG Offset,
IN OUT PULONG Length
);
NTSTATUS
DbgKdSetBusData(
IN ULONG BusDataType,
IN ULONG BusNumber,
IN ULONG SlotNumber,
IN PVOID Buffer,
IN ULONG Offset,
IN OUT PULONG Length
);
NTSTATUS
DbgKdSetInternalBp(
ULONG64 Addr,
ULONG Flags
);
NTSTATUS
DbgKdGetInternalBp (
ULONG64 addr,
PULONG flags,
PULONG calls,
PULONG minInstr,
PULONG maxInstr,
PULONG totInstr,
PULONG maxCPS
);
NTSTATUS
DbgKdClearAllInternalBreakpoints(
void
);
NTSTATUS
DbgKdReadDebuggerDataHeader(
ULONG64 Address,
PDBGKD_DEBUG_DATA_HEADER64 Header
);
NTSTATUS
DbgKdReadDebuggerDataBlock(
ULONG64 Address,
PDBGKD_DEBUG_DATA_HEADER64 DataBlock,
ULONG SizeToRead
);
BOOL
ChangeBaudRate(
DWORD NewRate
);
NTSTATUS
DbgKdSearchMemory(
IN ULONG64 SearchAddress,
IN ULONG64 SearchLength,
IN PUCHAR Pattern,
IN ULONG PatternLength,
OUT PULONG64 FoundAddress
);
NTSTATUS
DbgKdWriteBreakPoint(
IN ULONG64 BreakPointAddress,
OUT PULONG_PTR BreakPointHandle
);
NTSTATUS
DbgKdRestoreBreakPoint(
IN ULONG_PTR BreakPointHandle
);
NTSTATUS
DbgKdSwitchActiveProcessor(ULONG);
NTSTATUS
DbgKdContinue (
IN NTSTATUS ContinueStatus
);
NTSTATUS
DbgKdContinue2 (
IN NTSTATUS ContinueStatus,
IN DBGKD_ANY_CONTROL_SET ControlSet
);
NTSTATUS
DbgKdReadMsr(
IN ULONG MsrReg,
OUT PULONGLONG MsrValue
);
NTSTATUS
DbgKdWriteMsr(
IN ULONG MsrReg,
IN ULONGLONG MsrValue
);
NTSTATUS
DbgKdGetContext(
IN ULONG Processor,
IN PCROSS_PLATFORM_CONTEXT Context
);
NTSTATUS
DbgKdSetContext(
IN ULONG Processor,
IN PCROSS_PLATFORM_CONTEXT Context
);
NTSTATUS
DbgKdRestoreBreakPoint(
IN ULONG_PTR BreakPointHandle
);
NTSTATUS
DbgKdReboot(
VOID
);
NTSTATUS
DbgKdFillMemory(
IN ULONG Flags,
IN ULONG64 Start,
IN ULONG Size,
IN PVOID Pattern,
IN ULONG PatternSize,
OUT PULONG Filled
);
NTSTATUS
DbgKdQueryMemory(
IN ULONG64 Address,
IN ULONG InSpace,
OUT PULONG OutSpace,
OUT PULONG OutFlags
);
#endif // #ifndef _DBGKDAPI_H_