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 a 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 memoria suficiente 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 van a asignar para el elemento.

[in] OldSize

Número de bytes que ocupa el elemento actualmente.

[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 success o STATUS_INSUFFICIENT_RESOURCES.

Observaciones

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 tamaño de(** PointerToPointerToItem) como ambos tamaños.

Por ejemplo, considere un pin que necesita modificar su trama de asignador en la creación. Dado que el descriptor está codificado estáticamente y los pins 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 >Descriptor de>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, salvo que Object se reemplaza por Object->Bag y el puntero se escribe en PVOID.

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

Requisitos

Requisito Valor
cliente mínimo admitido Disponible en Microsoft Windows XP y sistemas operativos posteriores y DirectX 8.0 y versiones posteriores de DirectX.
de la plataforma de destino de Universal
encabezado de ks.h (incluya Ks.h)
biblioteca de Ks.lib
irQL PASSIVE_LEVEL