Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Свойство KSPROPERTY_MIDILOOPEDSTREAMING_REGISTERS используется для извлечения указателей на позиции чтения и записи, сопоставленные с пространством процесса вызывающего объекта.
В следующей таблице перечислены функции этого свойства.
Сводная таблица использования
| Get | Установить | Цель | Тип дескриптора свойства | Тип значения свойства |
|---|---|---|---|---|
| Да | нет | Закрепить | KSPROPERTY | KSMIDILOOPED_REGISTERS |
Тип дескриптора свойства — KSPROPERTY. Тип значения свойства — это структура KSMIDILOOPED_REGISTERS .
Возвращаемое значение
Запрос свойства KSPROPERTY_MIDILOOPEDSTREAMING_REGISTERS возвращает STATUS_SUCCESS, чтобы указать успешное завершение. В противном случае запрос возвращает код ошибки, указывающий на сбой.
| Код состояния | Meaning |
|---|---|
| STATUS_SUCCESS | Указывает успешное завершение. |
| STATUS_ALREADY_INITIALIZED | Возвращается, если регистры уже выделены или KSPROPERTY_MIDILOOPEDSTREAMING_BUFFER были вызваны другим процессом. Это означает, что буфер циклизованной памяти уже выделен и сопоставлен с другим процессом, отличным от того, который запрашивает регистры. |
| СТАТУС_НЕДОСТАТОЧНО_РЕСУРСОВ | Возвращается, если недостаточно памяти для выделения регистров. |
Замечания
KSPROPERTY_MIDILOOPEDSTREAMING_REGISTERS вызывается без входных данных. Возвращается KSMIDILOOPED_REGISTERS структура , содержащая указатели на позиции чтения и записи, сопоставленные с пространством процесса вызывающего объекта.
Пример кода
HRESULT
LoopedRegisterCall(
_In_ PULONG& ReadPosition,
_In_ PULONG& WritePosition
)
{
KSPROPERTY property {0};
KSMIDILOOPED_REGISTERS registers {0};
ULONG propertySize {sizeof(property)};
property.Set = KSPROPSETID_MidiLoopedStreaming;
property.Id = KSPROPERTY_MIDILOOPEDSTREAMING_REGISTERS;
property.Flags = KSPROPERTY_TYPE_GET;
RETURN_IF_FAILED(SyncIoctl(
m_Pin.get(),
IOCTL_KS_PROPERTY,
&property,
propertySize,
®isters,
sizeof(registers),
nullptr));
ReadPosition = (PULONG) registers.ReadPosition;
WritePosition = (PULONG) registers.WritePosition;
return S_OK;
}
Требования
| Item | Description |
|---|---|
| Версия | Доступно в Windows версии 25H2 и более поздних версиях. |
| Header | Ksmedia.h |