test.cpp

来自「Programming the Microsoft Windows driver」· C++ 代码 · 共 43 行

CPP
43
字号
// test.cpp : Defines the entry point for the console application.

// Copyright (C) 1999 by Walter Oney

// All rights reserved



#include "stdafx.h"

#include <winioctl.h>

#include "..\sys\ioctls.h"



int main(int argc, char* argv[])

	{

	HANDLE hdevice = CreateFile("\\\\.\\IOCTL", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);

	if (hdevice == INVALID_HANDLE_VALUE)

		{

		printf("Unable to open IOCTL device - error %d\n", GetLastError());

		return 1;

		}



	DWORD junk;

	volatile DWORD version;



	version = 0;

	if (DeviceIoControl(hdevice, IOCTL_GET_VERSION_BUFFERED, NULL, 0, (PVOID) &version, sizeof(version), &junk, NULL))

		printf("Using IOCTL.SYS version %d.%2.2d\n", HIWORD(version), LOWORD(version));

	else

		printf("Error %d in IOCTL_GET_VERSION_BUFFERED\n", GetLastError());



	version = 0;

	if (DeviceIoControl(hdevice, IOCTL_GET_VERSION_DIRECT, NULL, 0, (PVOID) &version, sizeof(version), &junk, NULL))

		printf("Using IOCTL.SYS version %d.%2.2d\n", HIWORD(version), LOWORD(version));

	else

		printf("Error %d in IOCTL_GET_VERSION_DIRECT\n", GetLastError());



	version = 0;

	if (DeviceIoControl(hdevice, IOCTL_GET_VERSION_NEITHER, NULL, 0, (PVOID) &version, sizeof(version), &junk, NULL))

		printf("Using IOCTL.SYS version %d.%2.2d\n", HIWORD(version), LOWORD(version));

	else

		printf("Error %d in IOCTL_GET_VERSION_NEITHER\n", GetLastError());



	CloseHandle(hdevice);

	return 0;

	}



⌨️ 快捷键说明

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