(1)、DWORD XXX_Open ( DWORD hDeviceContext,
DWORD AccessCode,
DWORD ShareMode )
参数:DWORD hDeviceContext,设备驱动的句柄,由XXX_Init函数创建式返回;
DWORD AccessCode,传给驱动程序使用的地址,这个地址跟读和写有关;
DWORD ShareMode,共享模式,
返回值:返回驱动程序引用实例句柄。
描述:这个函数用于打开一个设备驱动程序,当应用程序准备对某个设备进行读或写操作时,系统必须先执行CreateFile()这个函数用于打开这个设备,这个函数执行后才能执行读和写操作;
(2)、BOOL XXX_Close(DWORD hOpenContext)
参数:DWORD hOpenContext,设备驱动的句柄,由XXX_Open创建。
返回值:调用成功返回TRUE,失败返回FALSE
描述:这个函数用于关闭一个驱动程序的引用实例,应用程序通过CloseHandle()函数来调用这个函数,当执行完这个函数后,hOpenContext将不再有效;
(3)、DWORD XXX_Read( DWORD hOpenContext,
LPVOID pBuffer,
DWORD Count)
参数:DWORD hOpenContext,由CreateFile()函数返回的句柄;
LPVOID pBuffer,一个缓冲区地址,用于从驱动读数据;
DWORD Count,需要读缓冲区的长度
返回值:实际读缓冲区的长度
描述:当一个流式接口驱动程序已经打开后,可以使用ReadFile()函数对这个设备进行读操作。ReadFile()中的hFile参数对应设备的引用实例句柄hOpenContext,二参数lpBuffer将传给pBuffer,用于表示要读缓冲区的地址,参数nNumberOfByteToRead将传给Count,表示读取缓冲区的长度。
(4)、DWORD XXX_Write( DWORD hOpenContext,
LPVOID pBuffer,
DWORD Count)
参数:DWORD hOpenContext,由CreateFile()函数返回的句柄;
LPVOID pBuffer,一个缓冲区地址,用于从驱动写数据;
DWORD Count,需要写缓冲区的长度
返回值:实际写缓冲区的长度
描述:当一个流式接口驱动程序已经打开后,可以使用WriteFile()函数对这个设备进行写操作。
(5)、BOOL XXX_IOControl(DWORD hOpenContext,
WORD dwCode,
PBYTE pBufIn,
DWORD dwLenIn,
PBYTE pBufOut,
DWORD dwLenOut,
PDWORD pdwActualOut)
参数:DWORD hOpenContext,由CreateFile()函数返回的句柄;
WORD dwCode,用于描述这次IOControl操作的语义,由用户自己定义;
PBYTE pBufIn,缓冲区指针指向需要传送给驱动程序使用的数据;
DWORD dwLenIn,要传送给驱动程序使用数据的长度;
PBYTE pBufOu,缓冲区指针指向驱动程序传给应用程序使用的数据;
DWORD dwLenOut,要传送给应用程序使用数据的长度;
PDWORD pdwActualOut,返回实际处理数据的长度;
返回值:调用成功返回TRUE,失败返回FALSE
描述:这个函数通常用于向设备发送一个命令,应用程序使用DeviceIOControl函数来通知操作系统调用这个函数,通过参数dwCode来通知驱动程序要执行的操作。这个函数扩展了流式接口驱动程序的功能。
(6)、DWORD XXX_Init(DWORD dwContext)
参数:DWORD dwContext,指向字符串的指针,通常这个参数都为一个流式接口驱动在注册表内的设置。
返回值:如果调用成功返回一个驱动程序的句柄;
描述:当用户使用一个设备的时候,设备管理器调用这个函数来对设备进行初始化。这个函数并不是由应用程序调用的,而是通过设备管理器提供的ActiveDeviceEx()来调用。函数执行成功后返回一个设备的句柄。