Compartir a través de


función _KsEdit (ks.h)

La función KsEdit garantiza que un elemento determinado se asigna dinámicamente y se asocia con un objeto AVStream a través del contenedor de objetos.

Sintaxis

KSDDKAPI NTSTATUS _KsEdit(
  [in]      KSOBJECT_BAG ObjectBag,
  [in, out] PVOID        *PointerToPointerToItem,
  [in]      ULONG        NewSize,
  [in]      ULONG        OldSize,
  [in]      ULONG        Tag
);

Parámetros

[in] ObjectBag

El KSOBJECT_BAG (equivalente al tipo PVOID) que se va a usar en la comprobación. Si el elemento no está incluido en el contenedor de objetos, KsEdit asigna dinámicamente suficiente memoria para el elemento, copia el contenido antiguo y coloca la memoria recién asignada en este contenedor de objetos.

[in, out] PointerToPointerToItem

Puntero a un puntero al elemento que se está editando.

[in] NewSize

Número de bytes que se asignarán para el elemento.

[in] OldSize

Número de bytes que ocupa actualmente el elemento.

[in] Tag

Contiene la etiqueta de grupo que se va a usar para las asignaciones. Normalmente, los controladores especifican la etiqueta de grupo como una cadena de hasta cuatro caracteres, delimitados por comillas simples. Normalmente, la cadena se especifica en orden invertido. El valor ASCII de cada carácter de la etiqueta debe estar comprendido entre 0 y 127.

Valor devuelto

Devuelve correcto o STATUS_INSUFFICIENT_RESOURCES.

Comentarios

Tenga en cuenta que KsEdit y KsEditSized son macros creadas para facilitar el uso de _KsEdit . Aunque _KsEdit permite cambiar el tamaño de un elemento, KsEdit no. La macro KsEdit llama a _KsEdit, especificando sizeof(** PointerToPointerToItem) como ambos tamaños.

Por ejemplo, considere un pin que necesite modificar su marco de asignador en la creación. Dado que el descriptor está codificado estáticamente y los pin nuevos pueden usarlo, la solución consiste en modificar el descriptor de patillas de la siguiente manera:

KsEdit(Pin, &Pin->Descriptor, Tag);
Pin->Descriptor->AllocatorFraming = NewAllocatorFraming;

La llamada a KsEdit garantiza que Pin-Descriptor> es memoria dinámica asociada a Pin. Tenga en cuenta que la modificación arbitraria de descriptores y otras estructuras AVStream puede provocar resultados no deseados. Los minidrivers deben tener precaución al usar KsEdit en estructuras AVStream.

KsEditSized llama a _KsEdit con los mismos parámetros que recibe, excepto que Object se reemplaza por Object-Bag> y el puntero es typecast a PVOID.

Tenga en cuenta que al llamar a _KsEdit, un llamador debe contener la exclusión mutua asociada con la bolsa. Para obtener más información, vea Bolsas de objetos y exclusión mutua en AVStream.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Microsoft Windows XP y sistemas operativos posteriores y DirectX 8.0 y versiones posteriores de DirectX.
Plataforma de destino Universal
Encabezado ks.h (incluya Ks.h)
Library Ks.lib
IRQL PASSIVE_LEVEL