Bagikan melalui


IMiniportDMus::Metode NewStream (dmusicks.h)

Metode ini NewStream membuat instans baru aliran logis yang terkait dengan saluran fisik tertentu.

Sintaks

NTSTATUS NewStream(
  [out]          PMXF             *MXF,
  [in, optional] PUNKNOWN         OuterUnknown,
  [in]           POOL_TYPE        PoolType,
  [in]           ULONG            PinID,
  [in]           DMUS_STREAM_TYPE StreamType,
  [in]           PKSDATAFORMAT    DataFormat,
  [out]          PSERVICEGROUP    *ServiceGroup,
  [in]           PAllocatorMXF    AllocatorMXF,
  [in]           PMASTERCLOCK     MasterClock,
  [out]          PULONGLONG       SchedulePreFetch
);

Parameter

[out] MXF

Penunjuk output untuk aliran baru. Parameter ini menunjuk ke variabel penunjuk yang dialokasikan pemanggil tempat metode menulis penunjuk ke antarmuka IMXF objek aliran.

[in, optional] OuterUnknown

Arahkan ke antarmuka IUnknown objek yang perlu mengagregasi objek stream. Parameter ini bersifat opsional. Jika agregasi tidak diperlukan, pemanggil menentukan parameter ini sebagai NULL.

[in] PoolType

Menentukan jenis kumpulan memori tempat penyimpanan untuk objek saluran DMA harus dialokasikan. Parameter ini diatur ke salah satu nilai enumerasi POOL_TYPE .

[in] PinID

Menentukan ID pin. Parameter ini mengidentifikasi pin yang akan dibuka. Jika metode IMiniport::GetDescription driver miniport DMus menghasilkan deskriptor filter yang menentukan total pabrik pin n pada filter, maka ID pin yang valid berada di rentang 0 hingga n-1.

[in] StreamType

Menentukan jenis aliran data yang akan dibuat. Parameter ini diatur ke salah satu nilai enumerasi DMUS_STREAM_TYPE berikut:

DMUS_STREAM_MIDI_RENDER

Menentukan aliran output MIDI (pemutaran).

DMUS_STREAM_MIDI_CAPTURE

Menentukan aliran input MIDI.

DMUS_STREAM_WAVE_SINK

Menentukan aliran output gelombang.

Untuk informasi selengkapnya, lihat bagian Keterangan berikut ini.

[in] DataFormat

Penunjuk ke struktur KSDATAFORMAT streaming kernel yang menentukan format data yang akan digunakan untuk instans ini

[out] ServiceGroup

Penunjuk output untuk grup layanan. Parameter ini menunjuk ke variabel penunjuk yang dialokasikan pemanggil tempat metode menulis penunjuk ke antarmuka IServiceGroup dari objek grup layanan aliran. Ini adalah grup layanan yang sedang didaftarkan untuk pemberitahuan interupsi.

[in] AllocatorMXF

Penunjuk ke objek IAllocatorMXF . Ini adalah alokator memori driver port, yang diperlukan untuk mendaur ulang struktur DMUS_KERNEL_EVENT .

[in] MasterClock

Arahkan ke objek IMasterClock . Jam master ini melewati pembungkus untuk jam KS ke pengemudi miniport. Penunjuk jam master diperlukan untuk menyinkronkan ke waktu referensi.

[out] SchedulePreFetch

Penunjuk output untuk waktu schedule-prefetch. Parameter ini adalah penunjuk ke variabel ULONGLONG yang dialokasikan pemanggil tempat metode menulis nilai waktu yang menentukan seberapa jauh ke depan untuk mengkueri peristiwa. Waktu ditentukan dalam unit 100-nanodetik. Driver port bertanggung jawab untuk mengurutkan peristiwa apa pun yang melebihi jumlah waktu yang ditentukan driver miniport di sini.

Mengembalikan nilai

NewStream mengembalikan S_OK jika panggilan berhasil. Jika tidak, metode mengembalikan kode kesalahan yang sesuai.

Keterangan

Perhatikan bahwa driver port membuat objek IAllocatorMXF yang NewStream dimasukkan metode melalui parameter pAllocatorMXF , tetapi driver miniport membuat objek IMXF yang dihasilkan metode melalui parameter ppMXF . Untuk informasi selengkapnya tentang IMXF dan IAllocatorMXF, lihat Transportasi MIDI.

Arti parameter IMiniportDMus::NewStreamStreamType metode ini mirip dengan parameter Capture metode IMiniportMidi::NewStream:

  • Saat membuat aliran pada pin MIDI, parameter Capture metode IMiniportMidi::NewStream menunjukkan apakah pin berfungsi sebagai sink untuk aliran render MIDI (Capture = FALSE) atau sebagai sumber aliran pengambilan MIDI (Capture = TRUE).
  • Demikian pula, saat membuat aliran pada pin MIDI atau DirectMusic, IMiniportDMus::NewStream parameter StreamType metode dapat menunjukkan apakah pin berfungsi sebagai sink untuk aliran render MIDI (StreamType = DMUS_STREAM_MIDI_RENDER) atau sebagai sumber aliran pengambilan MIDI (StreamType = DMUS_STREAM_MIDI_CAPTURE).
Namun, pin pada filter DirectMusic dapat mendukung opsi ketiga yang tidak tersedia dengan filter MIDI. Pin dapat berfungsi sebagai sumber aliran output gelombang (StreamType = DMUS_STREAM_WAVE_SINK). Driver port DMus mengimplementasikan wastafel gelombang untuk aliran ini. Setelah membuat aliran output gelombang, driver port DMus meminta objek stream (yang diperoleh driver port melalui IMiniportDMus::NewStream parameter output ppMXF metode) untuk antarmuka ISynthSinkDMus-nya . Sink gelombang driver port memanggil metode Render pada antarmuka ini untuk menarik data gelombang dari synthesizer perangkat lunak. Untuk informasi selengkapnya, lihat Wave Sink untuk Kernel-Mode Software Synthesizer.

Parameter ppMXF, pOuterUnknown, ppServiceGroup, pAllocatorMXF, dan pMasterClock mengikuti konvensi penghitungan referensi untuk objek COM.

Persyaratan

Persyaratan Nilai
Target Platform Desktop
Header dmusicks.h (termasuk Dmusicks.h)
IRQL PASSIVE_LEVEL

Lihat juga

DMUS_KERNEL_EVENT

IAllocatorMXF

IMXF

IMasterClock

IMiniport::GetDescription

IMiniportDMus

IMiniportMidi::NewStream

IServiceGroup

ISynthSinkDMus

KSDATAFORMAT

POOL_TYPE