Функция SpbTargetGetFileObject (spbcx.h)
Метод SpbTargetGetFileObject принимает в качестве входного параметра дескриптор SPBTARGET для открытого целевого устройства и возвращает дескриптор WDFFILEOBJECT этому целевому объекту.
Синтаксис
WDFFILEOBJECT SpbTargetGetFileObject(
[in] SPBTARGET Target
);
Параметры
[in] Target
Дескриптор SPBTARGET для целевого устройства в шине.
Возвращаемое значение
SpbTargetGetFileObject возвращает дескриптор WDFFILEOBJECT на открытое целевое устройство в шине. Метод возвращает значение NULL, если подключение к целевому объекту было закрыто обратным вызовом события EvtSpbTargetDisconnect .
Комментарии
Драйвер контроллера может вызвать этот метод, чтобы получить дескриптор WDFFILEOBJECT для открытого целевого устройства в шине. Затем драйвер контроллера SPB может использовать этот дескриптор в качестве входного параметра для методов WDF, которым требуется такой дескриптор.
SpbTargetGetFileObject возвращает значение NULL, только если дескриптор WDFFILEOBJECT для целевого объекта был закрыт, но перед закрытием драйвер контроллера SPB взял дополнительную ссылку на объект SBPTARGET, чтобы продлить его время существования.
Если подключение было закрыто и драйвер контроллера SPB не содержит ссылок на объект SPBTARGET, дескриптор SBPTARGET становится недействительным. Передача недопустимого дескриптора в SpbTargetGetFileObject вызывает ошибку проверка.
После того как SpbTargetGetFileObject возвращает дескриптор WDFFILEOBJECT, нет никакой гарантии, что целевое подключение останется открытым, если другой объект (например, активный запрос ввода-вывода) не содержит ссылку на объект WDFFILEOBJECT, чтобы предотвратить его неожиданное закрытие. Этот метод является наиболее полезным и, следовательно, скорее всего, будет вызван, когда целевое подключение гарантированно открыто. Как правило, такие вызовы выполняются во время обратных вызовов EvtSpbTargetConnect и EvtSpbTargetDisconnect , а также во время обработки запросов ввода-вывода.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно начиная с Windows 8. |
Целевая платформа | Универсальное |
Верхняя часть | spbcx.h |
Библиотека | Spbcxstubs.lib |
IRQL | <= DISPATCH_LEVEL |