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 |