O'Reilly logo

Professional Windows® Embedded Compact 7 by Thierry Joubert, David Jones, Samuel Phung

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

APPLICATION STREAMING APIS

A stream’s IO is performed by a combination of functions, as shown in Table 32-5. You can use the API functions in an application performing IO on the stream. The calls require the stream’s handle, as returned from CreateFile, a data buffer pointer, and some indication of how much data is moved. The device manager takes those parameters and passes them to the corresponding driver function along with the open context for the stream pointed to by the handle. The driver functions are not what are called by the user application. The driver functions are an interface to the Driver Manager, not an application.

TABLE 32-5: Stream IO API

API Driver Example API call
CreateFile XXX_Open
HANDLE hStr =  
CreateFile(_T("MDY1:"), GENERIC_READ
 | GENERIC_WRITE,0, NULL,OPEN_EXISTING, NULL,0);
ReadFile XXX_Read
BOOL rs = 
ReadFile(hStr,bufferIn , 12, &dw, NULL);
WriteFile XXX_Write
BOOL rs = 
WriteFile(hStr, bufferOut , 12 &dw,NULL);
DeviceIOControl XXX_IOControl
BOOL rs = 
DeviceIoControl(hStr,IOCTL_NO,NULL,0,
NULL, 0,&dw,NULL);
CloseHandle XXX_Close
BOOL res = CloseHandle(hStr);

In the preceding examples the buffers are pointers to storage in the application. The 12 parameter is the number of bytes to pass from or to the buffer. The actual number of bytes, especially for the read, may be different as indicated by the returned value of dw. With the DeviceIOControl call, IOCTL_NO is the number of the IOCTL to be actioned by the driver. All API functions ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required