Bagikan melalui


Membuat Stream

Konteks aliran data harus dibuat sebelum driver filter Streaming AV/C, Avcstrm.sys, dapat menyediakan layanan. Konteks menunjuk ke struktur buram yang berisi format data yang diminta, status aliran data, dan properti, mirip dengan ekstensi aliran. Struktur format data dan arah aliran data adalah parameter inputnya. Jika aliran berhasil dibuat, aliran akan mengembalikan konteks stream. Konteks ini di-cache oleh driver subunit dan digunakan untuk permintaan Streaming AV/C berikutnya.

Ini adalah operasi sinkron. Operasi pertama kali membuat struktur permintaan aliran untuk membuka aliran. Kemudian memanggil rutinitas sinkron IRP yang ditentukan pengguna untuk memanggil driver yang lebih rendah untuk membuat aliran data yang didasarkan pada arah aliran data dan format data yang ditentukan dalam AVCSTRM_FORMAT_INFO. Sampel kode berikut menunjukkan cara membuka konteks aliran data.

#include <avcstrm.h>

INIT_AVCSTRM_HEADER(pAVCStrmReq, AVCSTRM_OPEN);
pAVCStrmReq->CommandData.OpenStruct.AVCFormatInfo =            &AVCStrmFormatInfoTable[pDevExt->VideoFormatIndex]; 
pAVCStrmReq->CommandData.OpenStruct.AVCStreamContext = NULL;
pAVCStrmReq->CommandData.OpenStruct.DataFlow         = DataFlow;

Status = 
    AVCStrmReqSubmitIrpSynch( 
        pDevExt->pBusDeviceObject,
        pStrmExt->pIrpReq,
        pAVCStrmReq
        );

if(STATUS_SUCCESS == Status) {
    // Save the context, which is used for a 
    // Subsequent call to the AVCStrm filter driver    
    pStrmExt->AVCStreamContext = 
        pAVCStrmReq->CommandData.OpenStruct.AVCStreamContext;
}