[NTOS:KD64] Add annotations to debugger control routines used in Kd/Nt/ZwSystemDebugControl

This commit is contained in:
Hermès Bélusca-Maïto 2023-03-13 01:09:57 +01:00
parent 20bd5e8a9c
commit 1c61d4ce90
No known key found for this signature in database
GPG key ID: 3B2539C65E7B93D0
5 changed files with 195 additions and 179 deletions

View file

@ -375,8 +375,7 @@ KdpZeroMemory(
VOID VOID
NTAPI NTAPI
KdpSysGetVersion( KdpSysGetVersion(
IN PDBGKD_GET_VERSION64 Version _Out_ PDBGKD_GET_VERSION64 Version);
);
// //
// Context // Context
@ -401,16 +400,14 @@ KdpSetContextState(
NTSTATUS NTSTATUS
NTAPI NTAPI
KdpSysReadMsr( KdpSysReadMsr(
IN ULONG Msr, _In_ ULONG Msr,
OUT PLARGE_INTEGER MsrValue _Out_ PLARGE_INTEGER MsrValue);
);
NTSTATUS NTSTATUS
NTAPI NTAPI
KdpSysWriteMsr( KdpSysWriteMsr(
IN ULONG Msr, _In_ ULONG Msr,
IN PLARGE_INTEGER MsrValue _In_ PLARGE_INTEGER MsrValue);
);
// //
// Bus // Bus
@ -418,26 +415,24 @@ KdpSysWriteMsr(
NTSTATUS NTSTATUS
NTAPI NTAPI
KdpSysReadBusData( KdpSysReadBusData(
IN ULONG BusDataType, _In_ BUS_DATA_TYPE BusDataType,
IN ULONG BusNumber, _In_ ULONG BusNumber,
IN ULONG SlotNumber, _In_ ULONG SlotNumber,
IN ULONG Offset, _In_ ULONG Offset,
IN PVOID Buffer, _Out_writes_bytes_(Length) PVOID Buffer,
IN ULONG Length, _In_ ULONG Length,
OUT PULONG ActualLength _Out_ PULONG ActualLength);
);
NTSTATUS NTSTATUS
NTAPI NTAPI
KdpSysWriteBusData( KdpSysWriteBusData(
IN ULONG BusDataType, _In_ BUS_DATA_TYPE BusDataType,
IN ULONG BusNumber, _In_ ULONG BusNumber,
IN ULONG SlotNumber, _In_ ULONG SlotNumber,
IN ULONG Offset, _In_ ULONG Offset,
IN PVOID Buffer, _In_reads_bytes_(Length) PVOID Buffer,
IN ULONG Length, _In_ ULONG Length,
OUT PULONG ActualLength _Out_ PULONG ActualLength);
);
// //
// Control Space // Control Space
@ -445,22 +440,20 @@ KdpSysWriteBusData(
NTSTATUS NTSTATUS
NTAPI NTAPI
KdpSysReadControlSpace( KdpSysReadControlSpace(
IN ULONG Processor, _In_ ULONG Processor,
IN ULONG64 BaseAddress, _In_ ULONG64 BaseAddress,
IN PVOID Buffer, _Out_writes_bytes_(Length) PVOID Buffer,
IN ULONG Length, _In_ ULONG Length,
OUT PULONG ActualLength _Out_ PULONG ActualLength);
);
NTSTATUS NTSTATUS
NTAPI NTAPI
KdpSysWriteControlSpace( KdpSysWriteControlSpace(
IN ULONG Processor, _In_ ULONG Processor,
IN ULONG64 BaseAddress, _In_ ULONG64 BaseAddress,
IN PVOID Buffer, _In_reads_bytes_(Length) PVOID Buffer,
IN ULONG Length, _In_ ULONG Length,
OUT PULONG ActualLength _Out_ PULONG ActualLength);
);
// //
// I/O Space // I/O Space
@ -468,26 +461,24 @@ KdpSysWriteControlSpace(
NTSTATUS NTSTATUS
NTAPI NTAPI
KdpSysReadIoSpace( KdpSysReadIoSpace(
IN ULONG InterfaceType, _In_ INTERFACE_TYPE InterfaceType,
IN ULONG BusNumber, _In_ ULONG BusNumber,
IN ULONG AddressSpace, _In_ ULONG AddressSpace,
IN ULONG64 IoAddress, _In_ ULONG64 IoAddress,
IN PVOID DataValue, _Out_writes_bytes_(DataSize) PVOID DataValue,
IN ULONG DataSize, _In_ ULONG DataSize,
OUT PULONG ActualDataSize _Out_ PULONG ActualDataSize);
);
NTSTATUS NTSTATUS
NTAPI NTAPI
KdpSysWriteIoSpace( KdpSysWriteIoSpace(
IN ULONG InterfaceType, _In_ INTERFACE_TYPE InterfaceType,
IN ULONG BusNumber, _In_ ULONG BusNumber,
IN ULONG AddressSpace, _In_ ULONG AddressSpace,
IN ULONG64 IoAddress, _In_ ULONG64 IoAddress,
IN PVOID DataValue, _In_reads_bytes_(DataSize) PVOID DataValue,
IN ULONG DataSize, _In_ ULONG DataSize,
OUT PULONG ActualDataSize _Out_ PULONG ActualDataSize);
);
// //
// Low Memory // Low Memory

View file

@ -93,8 +93,9 @@ KdpSetContextState(IN PDBGKD_ANY_WAIT_STATE_CHANGE WaitStateChange,
NTSTATUS NTSTATUS
NTAPI NTAPI
KdpSysReadMsr(IN ULONG Msr, KdpSysReadMsr(
OUT PLARGE_INTEGER MsrValue) _In_ ULONG Msr,
_Out_ PLARGE_INTEGER MsrValue)
{ {
/* Use SEH to protect from invalid MSRs */ /* Use SEH to protect from invalid MSRs */
_SEH2_TRY _SEH2_TRY
@ -112,8 +113,9 @@ KdpSysReadMsr(IN ULONG Msr,
NTSTATUS NTSTATUS
NTAPI NTAPI
KdpSysWriteMsr(IN ULONG Msr, KdpSysWriteMsr(
IN PLARGE_INTEGER MsrValue) _In_ ULONG Msr,
_In_ PLARGE_INTEGER MsrValue)
{ {
/* Use SEH to protect from invalid MSRs */ /* Use SEH to protect from invalid MSRs */
_SEH2_TRY _SEH2_TRY
@ -131,13 +133,14 @@ KdpSysWriteMsr(IN ULONG Msr,
NTSTATUS NTSTATUS
NTAPI NTAPI
KdpSysReadBusData(IN ULONG BusDataType, KdpSysReadBusData(
IN ULONG BusNumber, _In_ BUS_DATA_TYPE BusDataType,
IN ULONG SlotNumber, _In_ ULONG BusNumber,
IN ULONG Offset, _In_ ULONG SlotNumber,
IN PVOID Buffer, _In_ ULONG Offset,
IN ULONG Length, _Out_writes_bytes_(Length) PVOID Buffer,
OUT PULONG ActualLength) _In_ ULONG Length,
_Out_ PULONG ActualLength)
{ {
UNIMPLEMENTED; UNIMPLEMENTED;
return STATUS_UNSUCCESSFUL; return STATUS_UNSUCCESSFUL;
@ -145,13 +148,14 @@ KdpSysReadBusData(IN ULONG BusDataType,
NTSTATUS NTSTATUS
NTAPI NTAPI
KdpSysWriteBusData(IN ULONG BusDataType, KdpSysWriteBusData(
IN ULONG BusNumber, _In_ BUS_DATA_TYPE BusDataType,
IN ULONG SlotNumber, _In_ ULONG BusNumber,
IN ULONG Offset, _In_ ULONG SlotNumber,
IN PVOID Buffer, _In_ ULONG Offset,
IN ULONG Length, _In_reads_bytes_(Length) PVOID Buffer,
OUT PULONG ActualLength) _In_ ULONG Length,
_Out_ PULONG ActualLength)
{ {
UNIMPLEMENTED; UNIMPLEMENTED;
return STATUS_UNSUCCESSFUL; return STATUS_UNSUCCESSFUL;
@ -159,11 +163,12 @@ KdpSysWriteBusData(IN ULONG BusDataType,
NTSTATUS NTSTATUS
NTAPI NTAPI
KdpSysReadControlSpace(IN ULONG Processor, KdpSysReadControlSpace(
IN ULONG64 BaseAddress, _In_ ULONG Processor,
IN PVOID Buffer, _In_ ULONG64 BaseAddress,
IN ULONG Length, _Out_writes_bytes_(Length) PVOID Buffer,
OUT PULONG ActualLength) _In_ ULONG Length,
_Out_ PULONG ActualLength)
{ {
PVOID ControlStart; PVOID ControlStart;
PKPRCB Prcb = KiProcessorBlock[Processor]; PKPRCB Prcb = KiProcessorBlock[Processor];
@ -210,11 +215,12 @@ KdpSysReadControlSpace(IN ULONG Processor,
NTSTATUS NTSTATUS
NTAPI NTAPI
KdpSysWriteControlSpace(IN ULONG Processor, KdpSysWriteControlSpace(
IN ULONG64 BaseAddress, _In_ ULONG Processor,
IN PVOID Buffer, _In_ ULONG64 BaseAddress,
IN ULONG Length, _In_reads_bytes_(Length) PVOID Buffer,
OUT PULONG ActualLength) _In_ ULONG Length,
_Out_ PULONG ActualLength)
{ {
PVOID ControlStart; PVOID ControlStart;
PKPRCB Prcb = KiProcessorBlock[Processor]; PKPRCB Prcb = KiProcessorBlock[Processor];
@ -241,13 +247,14 @@ KdpSysWriteControlSpace(IN ULONG Processor,
NTSTATUS NTSTATUS
NTAPI NTAPI
KdpSysReadIoSpace(IN ULONG InterfaceType, KdpSysReadIoSpace(
IN ULONG BusNumber, _In_ INTERFACE_TYPE InterfaceType,
IN ULONG AddressSpace, _In_ ULONG BusNumber,
IN ULONG64 IoAddress, _In_ ULONG AddressSpace,
OUT PVOID DataValue, _In_ ULONG64 IoAddress,
IN ULONG DataSize, _Out_writes_bytes_(DataSize) PVOID DataValue,
OUT PULONG ActualDataSize) _In_ ULONG DataSize,
_Out_ PULONG ActualDataSize)
{ {
/* Verify parameters */ /* Verify parameters */
if (InterfaceType != Isa || BusNumber != 0 || AddressSpace != 1) if (InterfaceType != Isa || BusNumber != 0 || AddressSpace != 1)
@ -297,13 +304,14 @@ KdpSysReadIoSpace(IN ULONG InterfaceType,
NTSTATUS NTSTATUS
NTAPI NTAPI
KdpSysWriteIoSpace(IN ULONG InterfaceType, KdpSysWriteIoSpace(
IN ULONG BusNumber, _In_ INTERFACE_TYPE InterfaceType,
IN ULONG AddressSpace, _In_ ULONG BusNumber,
IN ULONG64 IoAddress, _In_ ULONG AddressSpace,
IN PVOID DataValue, _In_ ULONG64 IoAddress,
IN ULONG DataSize, _In_reads_bytes_(DataSize) PVOID DataValue,
OUT PULONG ActualDataSize) _In_ ULONG DataSize,
_Out_ PULONG ActualDataSize)
{ {
/* Verify parameters */ /* Verify parameters */
if (InterfaceType != Isa || BusNumber != 0 || AddressSpace != 1) if (InterfaceType != Isa || BusNumber != 0 || AddressSpace != 1)

View file

@ -35,8 +35,9 @@ KdpSetContextState(IN PDBGKD_ANY_WAIT_STATE_CHANGE WaitStateChange,
NTSTATUS NTSTATUS
NTAPI NTAPI
KdpSysReadMsr(IN ULONG Msr, KdpSysReadMsr(
OUT PLARGE_INTEGER MsrValue) _In_ ULONG Msr,
_Out_ PLARGE_INTEGER MsrValue)
{ {
UNIMPLEMENTED; UNIMPLEMENTED;
return STATUS_UNSUCCESSFUL; return STATUS_UNSUCCESSFUL;
@ -44,8 +45,9 @@ KdpSysReadMsr(IN ULONG Msr,
NTSTATUS NTSTATUS
NTAPI NTAPI
KdpSysWriteMsr(IN ULONG Msr, KdpSysWriteMsr(
IN PLARGE_INTEGER MsrValue) _In_ ULONG Msr,
_In_ PLARGE_INTEGER MsrValue)
{ {
UNIMPLEMENTED; UNIMPLEMENTED;
return STATUS_UNSUCCESSFUL; return STATUS_UNSUCCESSFUL;
@ -53,13 +55,14 @@ KdpSysWriteMsr(IN ULONG Msr,
NTSTATUS NTSTATUS
NTAPI NTAPI
KdpSysReadBusData(IN ULONG BusDataType, KdpSysReadBusData(
IN ULONG BusNumber, _In_ BUS_DATA_TYPE BusDataType,
IN ULONG SlotNumber, _In_ ULONG BusNumber,
IN ULONG Offset, _In_ ULONG SlotNumber,
IN PVOID Buffer, _In_ ULONG Offset,
IN ULONG Length, _Out_writes_bytes_(Length) PVOID Buffer,
OUT PULONG ActualLength) _In_ ULONG Length,
_Out_ PULONG ActualLength)
{ {
UNIMPLEMENTED; UNIMPLEMENTED;
return STATUS_UNSUCCESSFUL; return STATUS_UNSUCCESSFUL;
@ -67,13 +70,14 @@ KdpSysReadBusData(IN ULONG BusDataType,
NTSTATUS NTSTATUS
NTAPI NTAPI
KdpSysWriteBusData(IN ULONG BusDataType, KdpSysWriteBusData(
IN ULONG BusNumber, _In_ BUS_DATA_TYPE BusDataType,
IN ULONG SlotNumber, _In_ ULONG BusNumber,
IN ULONG Offset, _In_ ULONG SlotNumber,
IN PVOID Buffer, _In_ ULONG Offset,
IN ULONG Length, _In_reads_bytes_(Length) PVOID Buffer,
OUT PULONG ActualLength) _In_ ULONG Length,
_Out_ PULONG ActualLength)
{ {
UNIMPLEMENTED; UNIMPLEMENTED;
return STATUS_UNSUCCESSFUL; return STATUS_UNSUCCESSFUL;
@ -81,11 +85,12 @@ KdpSysWriteBusData(IN ULONG BusDataType,
NTSTATUS NTSTATUS
NTAPI NTAPI
KdpSysReadControlSpace(IN ULONG Processor, KdpSysReadControlSpace(
IN ULONG64 BaseAddress, _In_ ULONG Processor,
IN PVOID Buffer, _In_ ULONG64 BaseAddress,
IN ULONG Length, _Out_writes_bytes_(Length) PVOID Buffer,
OUT PULONG ActualLength) _In_ ULONG Length,
_Out_ PULONG ActualLength)
{ {
UNIMPLEMENTED; UNIMPLEMENTED;
return STATUS_UNSUCCESSFUL; return STATUS_UNSUCCESSFUL;
@ -93,11 +98,12 @@ KdpSysReadControlSpace(IN ULONG Processor,
NTSTATUS NTSTATUS
NTAPI NTAPI
KdpSysWriteControlSpace(IN ULONG Processor, KdpSysWriteControlSpace(
IN ULONG64 BaseAddress, _In_ ULONG Processor,
IN PVOID Buffer, _In_ ULONG64 BaseAddress,
IN ULONG Length, _In_reads_bytes_(Length) PVOID Buffer,
OUT PULONG ActualLength) _In_ ULONG Length,
_Out_ PULONG ActualLength)
{ {
UNIMPLEMENTED; UNIMPLEMENTED;
return STATUS_UNSUCCESSFUL; return STATUS_UNSUCCESSFUL;
@ -105,13 +111,14 @@ KdpSysWriteControlSpace(IN ULONG Processor,
NTSTATUS NTSTATUS
NTAPI NTAPI
KdpSysReadIoSpace(IN ULONG InterfaceType, KdpSysReadIoSpace(
IN ULONG BusNumber, _In_ INTERFACE_TYPE InterfaceType,
IN ULONG AddressSpace, _In_ ULONG BusNumber,
IN ULONG64 IoAddress, _In_ ULONG AddressSpace,
IN PVOID DataValue, _In_ ULONG64 IoAddress,
IN ULONG DataSize, _Out_writes_bytes_(DataSize) PVOID DataValue,
OUT PULONG ActualDataSize) _In_ ULONG DataSize,
_Out_ PULONG ActualDataSize)
{ {
UNIMPLEMENTED; UNIMPLEMENTED;
return STATUS_UNSUCCESSFUL; return STATUS_UNSUCCESSFUL;
@ -119,13 +126,14 @@ KdpSysReadIoSpace(IN ULONG InterfaceType,
NTSTATUS NTSTATUS
NTAPI NTAPI
KdpSysWriteIoSpace(IN ULONG InterfaceType, KdpSysWriteIoSpace(
IN ULONG BusNumber, _In_ INTERFACE_TYPE InterfaceType,
IN ULONG AddressSpace, _In_ ULONG BusNumber,
IN ULONG64 IoAddress, _In_ ULONG AddressSpace,
IN PVOID DataValue, _In_ ULONG64 IoAddress,
IN ULONG DataSize, _In_reads_bytes_(DataSize) PVOID DataValue,
OUT PULONG ActualDataSize) _In_ ULONG DataSize,
_Out_ PULONG ActualDataSize)
{ {
UNIMPLEMENTED; UNIMPLEMENTED;
return STATUS_UNSUCCESSFUL; return STATUS_UNSUCCESSFUL;

View file

@ -91,8 +91,9 @@ KdpSetContextState(IN PDBGKD_ANY_WAIT_STATE_CHANGE WaitStateChange,
NTSTATUS NTSTATUS
NTAPI NTAPI
KdpSysReadMsr(IN ULONG Msr, KdpSysReadMsr(
OUT PLARGE_INTEGER MsrValue) _In_ ULONG Msr,
_Out_ PLARGE_INTEGER MsrValue)
{ {
/* Wrap this in SEH in case the MSR doesn't exist */ /* Wrap this in SEH in case the MSR doesn't exist */
_SEH2_TRY _SEH2_TRY
@ -113,8 +114,9 @@ KdpSysReadMsr(IN ULONG Msr,
NTSTATUS NTSTATUS
NTAPI NTAPI
KdpSysWriteMsr(IN ULONG Msr, KdpSysWriteMsr(
IN PLARGE_INTEGER MsrValue) _In_ ULONG Msr,
_In_ PLARGE_INTEGER MsrValue)
{ {
/* Wrap this in SEH in case the MSR doesn't exist */ /* Wrap this in SEH in case the MSR doesn't exist */
_SEH2_TRY _SEH2_TRY
@ -135,13 +137,14 @@ KdpSysWriteMsr(IN ULONG Msr,
NTSTATUS NTSTATUS
NTAPI NTAPI
KdpSysReadBusData(IN ULONG BusDataType, KdpSysReadBusData(
IN ULONG BusNumber, _In_ BUS_DATA_TYPE BusDataType,
IN ULONG SlotNumber, _In_ ULONG BusNumber,
IN ULONG Offset, _In_ ULONG SlotNumber,
IN PVOID Buffer, _In_ ULONG Offset,
IN ULONG Length, _Out_writes_bytes_(Length) PVOID Buffer,
OUT PULONG ActualLength) _In_ ULONG Length,
_Out_ PULONG ActualLength)
{ {
/* Just forward to HAL */ /* Just forward to HAL */
*ActualLength = HalGetBusDataByOffset(BusDataType, *ActualLength = HalGetBusDataByOffset(BusDataType,
@ -157,13 +160,14 @@ KdpSysReadBusData(IN ULONG BusDataType,
NTSTATUS NTSTATUS
NTAPI NTAPI
KdpSysWriteBusData(IN ULONG BusDataType, KdpSysWriteBusData(
IN ULONG BusNumber, _In_ BUS_DATA_TYPE BusDataType,
IN ULONG SlotNumber, _In_ ULONG BusNumber,
IN ULONG Offset, _In_ ULONG SlotNumber,
IN PVOID Buffer, _In_ ULONG Offset,
IN ULONG Length, _In_reads_bytes_(Length) PVOID Buffer,
OUT PULONG ActualLength) _In_ ULONG Length,
_Out_ PULONG ActualLength)
{ {
/* Just forward to HAL */ /* Just forward to HAL */
*ActualLength = HalSetBusDataByOffset(BusDataType, *ActualLength = HalSetBusDataByOffset(BusDataType,
@ -179,11 +183,12 @@ KdpSysWriteBusData(IN ULONG BusDataType,
NTSTATUS NTSTATUS
NTAPI NTAPI
KdpSysReadControlSpace(IN ULONG Processor, KdpSysReadControlSpace(
IN ULONG64 BaseAddress, _In_ ULONG Processor,
IN PVOID Buffer, _In_ ULONG64 BaseAddress,
IN ULONG Length, _Out_writes_bytes_(Length) PVOID Buffer,
OUT PULONG ActualLength) _In_ ULONG Length,
_Out_ PULONG ActualLength)
{ {
PVOID ControlStart; PVOID ControlStart;
ULONG RealLength; ULONG RealLength;
@ -219,11 +224,12 @@ KdpSysReadControlSpace(IN ULONG Processor,
NTSTATUS NTSTATUS
NTAPI NTAPI
KdpSysWriteControlSpace(IN ULONG Processor, KdpSysWriteControlSpace(
IN ULONG64 BaseAddress, _In_ ULONG Processor,
IN PVOID Buffer, _In_ ULONG64 BaseAddress,
IN ULONG Length, _In_reads_bytes_(Length) PVOID Buffer,
OUT PULONG ActualLength) _In_ ULONG Length,
_Out_ PULONG ActualLength)
{ {
PVOID ControlStart; PVOID ControlStart;
@ -254,13 +260,14 @@ KdpSysWriteControlSpace(IN ULONG Processor,
NTSTATUS NTSTATUS
NTAPI NTAPI
KdpSysReadIoSpace(IN ULONG InterfaceType, KdpSysReadIoSpace(
IN ULONG BusNumber, _In_ INTERFACE_TYPE InterfaceType,
IN ULONG AddressSpace, _In_ ULONG BusNumber,
IN ULONG64 IoAddress, _In_ ULONG AddressSpace,
IN PVOID DataValue, _In_ ULONG64 IoAddress,
IN ULONG DataSize, _Out_writes_bytes_(DataSize) PVOID DataValue,
OUT PULONG ActualDataSize) _In_ ULONG DataSize,
_Out_ PULONG ActualDataSize)
{ {
NTSTATUS Status; NTSTATUS Status;
@ -335,13 +342,14 @@ KdpSysReadIoSpace(IN ULONG InterfaceType,
NTSTATUS NTSTATUS
NTAPI NTAPI
KdpSysWriteIoSpace(IN ULONG InterfaceType, KdpSysWriteIoSpace(
IN ULONG BusNumber, _In_ INTERFACE_TYPE InterfaceType,
IN ULONG AddressSpace, _In_ ULONG BusNumber,
IN ULONG64 IoAddress, _In_ ULONG AddressSpace,
IN PVOID DataValue, _In_ ULONG64 IoAddress,
IN ULONG DataSize, _In_reads_bytes_(DataSize) PVOID DataValue,
OUT PULONG ActualDataSize) _In_ ULONG DataSize,
_Out_ PULONG ActualDataSize)
{ {
NTSTATUS Status; NTSTATUS Status;

View file

@ -430,7 +430,8 @@ KdpSetCommonState(IN ULONG NewState,
VOID VOID
NTAPI NTAPI
KdpSysGetVersion(IN PDBGKD_GET_VERSION64 Version) KdpSysGetVersion(
_Out_ PDBGKD_GET_VERSION64 Version)
{ {
/* Copy the version block */ /* Copy the version block */
KdpMoveMemory(Version, KdpMoveMemory(Version,