fungsi _KsEdit (ks.h)

Fungsi KsEdit menjamin bahwa item tertentu dialokasikan secara dinamis dan terkait dengan objek AVStream melalui tas objek.

Sintaks

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

Parameter

[in] ObjectBag

KSOBJECT_BAG (setara dengan jenis PVOID) untuk digunakan dalam pemeriksaan. Jika item tidak terkandung dalam tas objek, KsEdit secara dinamis mengalokasikan memori yang cukup untuk item, menyalin konten lama, dan menempatkan memori yang baru dialokasikan dalam tas objek ini.

[in, out] PointerToPointerToItem

Penunjuk ke penunjuk ke item yang sedang diedit.

[in] NewSize

Jumlah byte yang akan dialokasikan untuk item.

[in] OldSize

Jumlah byte yang saat ini dibutuhkan item.

[in] Tag

Berisi tag kumpulan yang akan digunakan untuk alokasi. Driver biasanya menentukan tag kumpulan sebagai string hingga empat karakter, dibatasi oleh tanda kutip tunggal. String biasanya ditentukan dalam urutan terbalik. Nilai ASCII dari setiap karakter dalam tag harus antara 0 dan 127.

Nilai kembali

Mengembalikan keberhasilan atau STATUS_INSUFFICIENT_RESOURCES.

Keterangan

Perhatikan bahwa KsEdit dan KsEditSized adalah makro yang dibuat untuk membuat _KsEdit lebih mudah digunakan. Meskipun _KsEdit memungkinkan Anda mengubah ukuran item, KsEdit tidak. Makro KsEdit memanggil _KsEdit, menentukan sizeof(** PointerToPointerToItem) sebagai kedua ukuran.

Misalnya, pertimbangkan pin yang perlu memodifikasi pembingkaian alokatornya pada pembuatan. Karena deskriptor dikodekan secara statis dan pin baru dapat menggunakannya, solusinya adalah memodifikasi deskriptor pin sebagai berikut:

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

Panggilan ke KsEdit menjamin bahwa Pin-Descriptor> adalah memori dinamis yang terkait dengan Pin. Perhatikan bahwa modifikasi deskriptor arbitrer dan struktur AVStream lainnya dapat menyebabkan hasil yang tidak diinginkan. Minidriver harus berhati-hati saat menggunakan KsEdit pada struktur AVStream.

KsEditSized memanggil _KsEdit dengan parameter yang sama dengan yang diterimanya, kecuali bahwa Objek digantikan oleh Object-Bag> dan pointer diketik ke PVOID.

Perhatikan bahwa saat memanggil _KsEdit, penelepon harus menahan mutex yang terkait dengan tas. Untuk informasi selengkapnya, lihat Tas Objek dan Mutex di AVStream.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tersedia di Microsoft Windows XP dan sistem operasi yang lebih baru serta DirectX 8.0 dan versi DirectX yang lebih baru.
Target Platform Universal
Header ks.h (termasuk Ks.h)
Pustaka Ks.lib
IRQL PASSIVE_LEVEL