# !smi (trigger and show System Management Interrupt functionalities)

> !smi

### Syntax

> !smi \[Function (string)]

### Description

Triggers and shows functionalities related to System Management Interrupts (SMIs).

### Parameters

**\[Function (string)]**

The target functionality.

| Function | Description                                   |
| -------- | --------------------------------------------- |
| count    | Number of SMIs triggered in the target system |
| trigger  | Triggers a power SMI                          |

### Examples

The following command triggers a power SMI (using **APM I/O Decode Registers**).

```c
HyperDbg> !smi trigger
power SMI triggered successfully (you can use '!smi count' to view the number of executed SMIs)
```

The following example shows the number of SMIs that are already executed in the target system.

```clike
HyperDbg> !smi count
SMI count: 0x153e
```

### SDK

To perform SMI-related functionalities, you need to use the following function in `libhyperdbg`:

```clike
BOOLEAN
hyperdbg_u_perform_smi_operation(SMI_OPERATION_PACKETS * SmiOperation);
```

### Remarks

Starting from **v0.15**, this command was added to the HyperDbg debugger.

HyperDbg reads the number of SMIs from `MSR_SMI_COUNT` MSR (**0x34**) and triggers SMIs using **APM I/O Decode Registers**. For more information, please refer to this [post](https://nixhacker.com/digging-into-smm/).

This command is guaranteed to keep debuggee in a halt state (in Debugger Mode); thus, nothing will change during its execution.

### Requirements

None

### Related

None


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.hyperdbg.org/commands/extension-commands/smi.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
