Article # 288, added by Geoworks, historical record
| first | previous | index | next | last |

Is it possible to call a driver strategy routine from C?



Q. Is it possible to call a driver strategy routine from C?

A. Here's something you can try:

   DriverPassParams   dpp;
   DriverReturnParams drp;
   StreamToken        serialPort = SERIAL_COM1;

     /*
      * Set up StreamNotifyType for StreamReader, data event
      * notification (STREAM_EVENT_DATA), and notification mode by
      * a message.
      */
   dpp.ax = ( ( 1 << STREAM_TYPE_READER_OFFSET ) |
              ( STREAM_EVENT_DATA << STREAM_TYPE_EVENT_OFFSET ) |
              ( STREAM_MODE_MESSAGE << STREAM_TYPE_HOW_OFFSET ) );
   dpp.bx = serialPort;

     /*
      * MySerialNotifyObject is the object that contains a method
      * handler for MSG_MSNO_DATA_NOTIFY.
      */
   dpp.cx = OptrToHandle( @MySerialNotifyObject );
   dpp.dx = OptrToChunk( @MySerialNotifyObject );
   dpp.bp = MSG_MSNO_DATA_NOTIFY;

     /*
      * 14 equals DR_STREAM_SET_NOTIFY
      */
   DriverCallEntryPoint( serialDriver, 14, &dpp, &drp );