fungsi _KsEdit (ks.h)
Fungsi KsEdit menjamin bahwa item tertentu dialokasikan secara dinamis dan terkait dengan objek AVStream melalui tas objek.
Sintaksis
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.
Mengembalikan nilai
Mengembalikan keberhasilan atau STATUS_INSUFFICIENT_RESOURCES.
Komentar
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 ukuran (** 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->Deskriptor adalah memori dinamis yang terkait dengan Pin. Perhatikan bahwa modifikasi deskriptor dan struktur AVStream lainnya dapat menyebabkan hasil yang tidak diinginkan. Minidriver harus berhati-hati saat menggunakan KsEdit pada struktur AVStream.
panggilan KsEditSized _KsEdit dengan parameter yang sama dengan yang diterimanya, kecuali Objek digantikan oleh Tas>Objek dan pointer diketik ke PVOID.
Perhatikan bahwa saat memanggil _KsEdit, penelepon harus menahan mutex yang terkait dengan tas. Untuk informasi selengkapnya, lihat Object Bags dan Mutexes di AVStream.
Persyaratan
Syarat | Nilai |
---|---|
klien minimum yang didukung | Tersedia di Microsoft Windows XP dan sistem operasi yang lebih baru dan DirectX 8.0 dan versi DirectX yang lebih baru. |
Platform Target | Universal |
Header | ks.h (termasuk Ks.h) |
Pustaka | Ks.lib |
IRQL | PASSIVE_LEVEL |