⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 openintf.cpp

📁 WDM的驱动程序实例,可供自学开发WDM者参考,其是在VC和COMPUWARE下的.
💻 CPP
字号:
// OpenByIntf.cpp - open device by device interface
// Copyright (c) 1998 Compuware Corporation

#define NOCRYPT			// prevent attempt to include missing files
#define _INC_EXCPT		// prevent excpt.h from being included

#include "stdlib.h"
#include "windows.h"
#include "winioctl.h"
#include "devintf.h"	// DriverWorks


// OpenByInterface
//
// Opens the nth device found with the given interface class

HANDLE OpenByInterface(
		const GUID* pClassGuid,		// points to the GUID that identifies the interface class
		DWORD instance,				// specifies which instance of the enumerated devices to open
		PDWORD pError				// address of variable to receive error status
		)
{
	HANDLE hDev = INVALID_HANDLE_VALUE;

	CDeviceInterfaceClass DevClass((GUID*)pClassGuid, pError);

	if ( *pError == ERROR_SUCCESS )
	{
		CDeviceInterface DevInterface(&DevClass, instance, pError);

		if ( *pError == ERROR_SUCCESS )
		{
			hDev = CreateFile(
				DevInterface.DevicePath(),
				GENERIC_READ | GENERIC_WRITE,
				FILE_SHARE_READ | FILE_SHARE_WRITE,
				NULL,
				OPEN_EXISTING,
				FILE_ATTRIBUTE_NORMAL,
				NULL
				);

			if ( hDev == INVALID_HANDLE_VALUE )
				*pError = GetLastError();
		}
	}

	return hDev;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -