Поделиться через


Метод IMiniportMidi::Init (portcls.h)

Метод Init инициализирует объект miniport MIDI.

Синтаксис

NTSTATUS Init(
  [in]  PUNKNOWN      UnknownAdapter,
  [in]  PRESOURCELIST ResourceList,
  [in]  PPORTMIDI     Port,
  [out] PSERVICEGROUP *ServiceGroup
);

Параметры

[in] UnknownAdapter

Указатель на интерфейс IUnknown объекта адаптера, для которого выполняется инициализация объекта miniport. Этот параметр является необязательным и может быть указан как NULL. Дополнительные сведения см. в разделе "Примечания".

[in] ResourceList

Указатель на интерфейс IResourceList объекта списка ресурсов, который должен быть предоставлен драйверу miniport во время инициализации. После передачи этой ссылки драйверу мини-порта драйвер порта может изучить содержимое списка ресурсов, но не будет изменять содержимое этого списка. Дополнительные сведения см. в разделе "Примечания".

[in] Port

Указатель на объект IPortMidi , привязанный к этому объекту miniport. Вызывающий объект задает допустимое значение указателя, отличное от NULL , для этого параметра.

[out] ServiceGroup

Указатель вывода для группы служб. Этот параметр указывает на выделенную вызывающим объектом переменную указателя, в которую метод записывает указатель на интерфейс IServiceGroup объекта группы служб драйвера мини-порта. Это группа служб, которая регистрируется для уведомления о прерывании. Вызывающий объект задает допустимое значение указателя, отличное от NULL , для этого параметра.

Возвращаемое значение

Init возвращает STATUS_SUCCESS, если вызов был успешным. В противном случае метод возвращает соответствующий код ошибки.

Комментарии

Параметр UnknownAdapter является необязательным:

  • Если значение UnknownAdapter не равно NULL, Init метод запрашивает у объекта UnknownAdapter интерфейс IInterruptSync .
  • Если unknownAdapter имеет значение NULL, Init метод вызывает PcNewInterruptSync для создания нового объекта IInterruptSync . В этом случае список ресурсов, на который указывает ResourceList , предоставляет ресурс прерывания, который использует новый объект IInterruptSync .
В любом случае метод и вызывает метод RegisterServiceRoutine для объекта IInterruptSync, Init чтобы добавить подпрограмму обслуживания прерываний (ISR) драйвера miniport в список процедур синхронизации прерываний. Когда позже драйвер адаптера освобождает объект порта, драйвер порта освобождает ссылку на объект IInterruptSync .

Параметры UnknownAdapter и ResourceList — это те же значения указателя, которые драйвер адаптера ранее передал в качестве параметров методу Init объекта IPortMidi (см. раздел IPort::Init).

Параметры UnknownAdapter, ResourceList, Port и ServiceGroup следуют соглашениям о подсчете ссылок для COM-объектов.

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть portcls.h (включая Portcls.h)
IRQL PASSIVE_LEVEL

См. также раздел

IInterruptSync

IMiniportMidi

IPort::Init

IPortMidi

IResourceList

IServiceGroup

PcNewInterruptSync