DWORD XXX_Init (DWORD dwContext,
LPCVOID lpvBusContext);
dwContext:指向注册表的指针,说明流驱动的活动键的路径。
lpvBusContext:作为ActiveDevice的第四个参数传递进程映射的指针。
返回值:若此函数执行成功,则返回一个设备上下文句柄。否则返回0。这个句柄会被传送给XXX_Open、XXX_PowerDown、XXX_PowerUp和XXX_Deinit函数。
备注:当驱动被系统加载时,调用此函数。
BOOL XXX_Deinit(DWORD hDeviceContext);
hDeviceContext:由XXX_Init创建和返回的设备上下文句柄。
返回值:调用成功,返回TURE;调用失败,返回FALSE。
备注:当驱动被系统卸载时,调用此函数。
DWORD XXX_Open (DWORD hDeviceContext,
DWORD AccessCode,
DWORD ShareMode);
hDeviceContext:由XXX_Init创建和返回的设备上下文句柄。
AccessCode:表示设备的存取权限。存取权限是CreatFile传入的读写权限的组合。
ShareMode:表示设备的文件共享模式。共享模式是CreatFile传入的共享权限的组合。
返回值:若此函数执行成功,则返回一个标识所打开设备的设备上下文句柄。否则返回0。这个句柄会被传送给XXX_Read、XXX_Write、XXX_Seek和XXX_IOControl。
备注:当应用程序调用CreatFile()函数时,调用此函数。
BOOL XXX_Close (DWORD hOpenContext);
hOpenContext:由XXX_Open创建和返回的设备上下文句柄。
返回值:调用成功,返回TURE;调用失败,返回FALSE。
备注:当应用程序调用CloseHandle()函数时,调用此函数。
DWORD XXX_Read (DWORD hOpenContext,
LPVOID pBuffer,
DWORD Count);
hOpenContext:由XXX_Open创建和返回的设备上下文句柄。
pBuffer:指向由设备读取的数据缓冲区的指针。
Count:表示由应用程序想要从设备读入到缓冲区的字节数。
返回值:返回0表示已经达到文件结尾,返回-1表示出错,执行成功返回实际读入的字节数。
备注:当应用程序调用ReadFile()函数时,调用此函数。
DWORD XXX_Write (DWORD hOpenContext,
LPVOID pBuffer,
DWORD Count);
hOpenContext:由XXX_Open创建和返回的设备上下文句柄。
pBuffer:指向准备向设备写入的数据缓冲区的指针。
Count:表示应用程序想要写入到设备缓冲区的字节数。
返回值:返回-1表示出错,执行成功返回实际写入的字节数。
备注:当应用程序调用WriteFile()函数时,调用此函数。
DWORD XXX_IOControl (DWORD hOpenContext,
DWORD dwCode,
PBYTE pBufIn,
DWORD dwLenIn,
PBYTE pBufOut,
DWORD dwLenOut,
PDWORD pdwActualOut);
hOpenContext:由XXX_Open创建和返回的设备上下文句柄。
dwCode:表示I/O的控制操作码。这些编码一般都是是自定义的,一般都会包含在头文件里。
pBufIn:输入缓冲区的指针。
dwLenIn:要写入的字节数。
pBufOut:输出缓冲区指针。
dwLenOut:输出的字节数。
pdwActualOut:实际输出的字节数。
返回值:调用成功,返回TRUE,否则返回FALSE。.
备注:当应用程序调用DeviceIOControl()函数时,调用此函数。
void XXX_PowerDown (DWORD hDeviceContext);
hDeviceContext:由XXX_Init创建和返回的设备上下文句柄。
备注:当系统停止对设备供电,或在调用DeviceIOControl()函数时,I/O命令字为IOCTL_POWER_XXX时调用此函数。
void XXX_PowerUp (DWORD hDeviceContext);
hDeviceContext:由XXX_Init创建和返回的设备上下文句柄。
备注:当系统恢复对设备供电,或在调用DeviceIOControl()函数时,I/O命令字为IOCTL_POWER_XXX时调用此函数。
DWORD XXX_Seek (DWORD dwOpen, long lDelta, WORD wType);