//---------------------------------------------------------------------------- // // 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_