> For the complete documentation index, see [llms.txt](https://book.bsdcn.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://book.bsdcn.org/man/man9/device_get_softc.9.md).

# device\_get\_softc.9

`device_get_softc` — 访问驱动程序私有实例变量

## 名称

`device_get_softc`

## 概要

```c
#include <sys/param.h>
#include <sys/bus.h>

void *
device_get_softc(device_t dev);
```

## 描述

返回 `dev` 的驱动程序特定软件上下文（softc）。softc 在设备 attach 时自动分配并清零。在设备 probe 时 softc 也会被初始化并存在，但需遵守 [DEVICE\_PROBE(9)](/man/man9/device_probe.9.md) 中所述的注意事项。分配的大小由定义驱动程序时所用的设备 `driver_t` 信息决定。softc 通常封装了该设备实例的状态。

不鼓励驱动程序作者使用自己的 softc 管理机制。驱动程序作者不应复制源码树中早于此函数的驱动程序中的此类机制。

## 返回值

返回指向驱动程序特定实例变量的指针。

## 参见

[device(9)](/man/man9/device.9.md), [DEVICE\_PROBE(9)](/man/man9/device_probe.9.md), [device\_set\_softc(9)](https://github.com/FreeBSD-Ask/freebsd-man-sc/tree/main/man9/device_set_softc.9.md), [driver(9)](/man/man9/driver.9.md)

## 作者

本手册页由 Doug Rabson 编写。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://book.bsdcn.org/man/man9/device_get_softc.9.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
