|
From: Tulup on 15 Mar 2006 09:00 Hi all! Can anybody help me to learn a little about kernel ? :) The scope of my question is about AVStream minidriver that receives data buffer from user mode app via KsSynchronousDeviceControl(KSMETHOD) call. Currently i create method set with different items. all of them is decared like this one: DEFINE_KSMETHOD_ITEM ( ID, KSMETHOD_TYPE_READ | KSMETHOD_TYPE_SOURCE, ReadHandlerID, sizeof(KSMETHOD), SIZE, NULL ) because i need to pass buffers with different length (from ~50Kb till ~4??). Each ID have it's own Handler and SIZE. 1) I want to modify it to create only one KSMETHOD_ITEM with max(SIZE) and pass to HANDLER param structure with real size that will be used. What solution will be the best in performance and system resources mark ? 2) I have read about "Methods for Accessing Data Buffers" and don't understand what of data buffer access is used when i declare KSMETHOD_TYPE_SOURCE. Is it Direct I/O or Buffered I/O ? I think it's latter. Can be possible to implement Direct I/O with with "MemToMem" Copy in KSMETHOD? Will it increase performance, if this methos is called at very high rate (1-30 times a sec) usually with 230-900 Kb buffers. And 3) OFFtopic question. What is difference when using KsSynchronousDeviceControl and DeviceIOControl (asynchronous) to pass data buffer to kernel mode? Thank you. Who will read till this place I'll buy champagne bottle ;)
|
Pages: 1 Prev: mini-rdr and windows media player Next: How to define PnP Device would Storage Device? |