KSPROPERTY_MIDILOOPEDSTREAMING_REGISTERS

Свойство 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,
            &registers,
            sizeof(registers),
            nullptr));

        ReadPosition = (PULONG) registers.ReadPosition;
        WritePosition = (PULONG) registers.WritePosition;

        return S_OK;
    }

Требования

Item Description
Версия Доступно в Windows версии 25H2 и более поздних версиях.
Header Ksmedia.h

См. также