Struktur KSPROCESSPIN (ks.h)
Struktur KSPROCESSPIN menjelaskan status proses pin tertentu.
Sintaks
typedef struct _KSPROCESSPIN {
PKSPIN Pin;
PKSSTREAM_POINTER StreamPointer;
PKSPROCESSPIN InPlaceCounterpart;
PKSPROCESSPIN DelegateBranch;
PKSPROCESSPIN CopySource;
PVOID Data;
ULONG BytesAvailable;
ULONG BytesUsed;
ULONG Flags;
BOOLEAN Terminate;
} KSPROCESSPIN, *PKSPROCESSPIN;
Anggota
Pin
Penunjuk ke struktur KSPIN yang dijelaskan oleh struktur KSPROCESSPIN. Segala sesuatu dalam struktur mengacu pada KSPIN ini.
StreamPointer
Penunjuk ke struktur KSSTREAM_POINTER yang menunjuk ke aliran input di lokasi input saat ini atau ke aliran output di lokasi output saat ini. Ini dapat digunakan, misalnya, dengan pin output untuk memberi stempel informasi ke KSSTREAM_HEADER terkait (ProcessPin-StreamPointer-StreamHeader-Flags>>>=...).
InPlaceCounterpart
Penunjuk ke struktur KSPROCESSPIN. Jika KSPROCESSPIN ini bukan bagian dari transformasi inplace , AVStream mengatur InPlaceCounterpart ke NULL. Jika KSPROCESSPIN ini adalah input ke transformasi inplace, InPlaceCounterpart menunjuk ke pin proses output untuk transformasi. Jika KSPROCESSPIN ini adalah output dari transformasi inplace, InPlaceCounterpart menunjuk ke pin proses input untuk transformasi.
DelegateBranch
Penunjuk ke struktur KSPROCESSPIN. Jika bingkai yang keluar dari KSPROCESSPIN ini sedang dipisahkan dan dikirim ke beberapa pin sink, dan pemisahan tidak menyebabkan salinan data (yaitu, pemisahan mengirim bingkai dengan cara baca-saja dan semua instans pin terpisah berada dalam pipa yang sama), DelegateBranch menunjuk ke instans pertama dari pin proses. Pemisah secara otomatis menangani pin proses apa pun yang memiliki DelegateBranchnon-NULL.
CopySource
Penunjuk ke struktur KSPROCESSPIN. Jika bingkai yang keluar dari pin proses ini sedang dipisahkan dan dikirim ke beberapa pin sink dengan cara yang menyebabkan salinan data (yaitu, salah satu filter hilir memodifikasi bingkai data dengan menggunakan transformasi di tempat), CopySource menunjuk ke pin proses tempat bingkai disalin. Pemisah secara otomatis menangani pin proses apa pun yang memiliki CopySourcenon-NULL.
Data
Penunjuk ke buffer. Jika pin yang dijelaskan oleh entri proses ini adalah pin input, Data menunjuk ke byte data berikutnya yang tersedia untuk diinput. Jika pin yang dijelaskan oleh entri proses ini adalah pin output, Data menunjuk ke buffer output tempat data yang diproses ditempatkan.
BytesAvailable
Anggota ini menentukan berapa banyak byte data yang tersedia di Data.
BytesUsed
Anggota ini menentukan berapa banyak byte dari bingkai data ini yang telah digunakan oleh fungsi proses. Driver AVStream harus mengatur anggota ini untuk memperbarui berapa banyak mereka telah membaca atau menulis.
Flags
Anggota ini berisi salinan bendera dari struktur KSSTREAM_HEADER yang relevan, jika KSPROCESSPIN ini adalah pin input.
Terminate
Anggota ini menunjukkan apakah bingkai data saat ini harus dikirim ke hilir setelah pengiriman proses selesai. Jika TRUE, bingkai dikirim ke hilir meskipun semua data belum digunakan. Jika FALSE, bingkai tidak dirilis sampai semua data digunakan.
Keterangan
Struktur KSPROCESSPIN digunakan dalam model pemrosesan yang berpusat pada filter . Anda dapat menggunakan struktur ini untuk mengakses data pada pin input tertentu atau untuk menulis data yang diproses ke pin output.
Hanya klien yang berfilter-sentris yang menggunakan pin proses. Selanjutnya, proses pin yang memiliki DelegasiNon-NULLBranch atau CopySourcenon-NULL biasanya tidak menjadi perhatian klien. Pemisah secara otomatis menangani pin proses dengan pointer ini.
Sebagian besar klien khawatir dengan pin anggota, Data, BytesAvailable, BytesUsed, Flags, dan Terminate. Data dapat dibaca dari aliran atau ditulis ke dalam aliran melalui anggota Data ; BytesAvailable memberi tahu klien berapa banyak byte data yang tersedia dalam bingkai data saat ini (buffer) yang dituju oleh Data . Saat minidriver klien membaca dari atau menulis ke aliran, BytesUsed harus diperbarui untuk mencerminkan berapa banyak byte data yang telah digunakan. Bendera Hentikan dapat diatur jika minidriver dilakukan dengan bingkai saat ini meskipun fakta bahwa BytesUsed tidak sama dengan BytesAvailable. Setelah minidriver keluar dari pengiriman pemrosesan, pointer dimajukan, dan bingkai selesai sebagaimana melengkapinya.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Tersedia di Microsoft Windows XP dan sistem operasi yang lebih baru dan di Microsoft DirectX 8.0 dan versi yang lebih baru. |
Header | ks.h (termasuk Ks.h) |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk