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

KSPIN

KSPROCESSPIN_INDEXENTRY

KSSTREAM_HEADER

KSSTREAM_POINTER