📄 pciop.h
字号:
/*++
Copyright (c) 1997 Microsoft Corporation
Module Name:
SIOCTL.H
Abstract:
Defines the IOCTL codes that will be used by this driver. The IOCTL code
contains a command identifier, plus other information about the device,
the type of access with which the file must have been opened,
and the type of buffering.
Author:
Eliyas Yakub - July 1997.
Environment:
Kernel mode only.
Notes:
Revision History:
--*/
#include <ntddk.h>
//
// Device type -- in the "User Defined" range."
//
#define SIOCTL_TYPE 40000
//
// The IOCTL function codes from 0x800 to 0xFFF are for customer use.
//
#define IOCTL_PORT_READ_WRITE \
CTL_CODE( SIOCTL_TYPE, 0x900, METHOD_BUFFERED, FILE_ANY_ACCESS )
#define IOCTL_MEMORY_MAP \
CTL_CODE( SIOCTL_TYPE, 0x901, METHOD_BUFFERED , FILE_ANY_ACCESS )
#define IOCTL_MEMORY_READ_WRITE \
CTL_CODE( SIOCTL_TYPE, 0x902, METHOD_OUT_DIRECT , FILE_ANY_ACCESS )
#define IOCTL_MEMORY_WRITE \
CTL_CODE( SIOCTL_TYPE, 0x912, METHOD_IN_DIRECT , FILE_ANY_ACCESS )
#define IOCTL_SIOCTL_METHOD_BUFFERED \
CTL_CODE( SIOCTL_TYPE, 0x903, METHOD_BUFFERED, FILE_ANY_ACCESS )
#define IOCTL_SIOCTL_METHOD_NEITHER \
CTL_CODE( SIOCTL_TYPE, 0x904, METHOD_NEITHER , FILE_ANY_ACCESS )
#define IOCTL_PCIOP_ENUM_ALL \
CTL_CODE( SIOCTL_TYPE, 0x801, METHOD_BUFFERED, FILE_ANY_ACCESS )
#define IOCTL_PCIOP_GET_PCIDEVICE \
CTL_CODE( SIOCTL_TYPE, 0x805, METHOD_BUFFERED, FILE_ANY_ACCESS )
#define IOCTL_PCIOP_BUFFERED_TEST \
CTL_CODE( SIOCTL_TYPE, 0x802, METHOD_BUFFERED, FILE_ANY_ACCESS )
#define DRIVER_FUNC_INSTALL 0x01
#define DRIVER_FUNC_REMOVE 0x02
#define DRIVER_NAME "Pciop"
//
//Pci query struct, input parameter
//
typedef struct PCIDevQuery{
BOOLEAN first;
ULONG vendorId;
ULONG deviceId;
ULONG busNum;
PCI_SLOT_NUMBER slotNum;
}PCIDEVQUERY, *PPCIDEVQUERY;
//
//Pci query result struct, input parameter
//
typedef struct PCIQueryResult{
PCIDEVQUERY pciQuery;
PCI_COMMON_CONFIG pciComConfig;
}PCIQUERYRESULT, *PPCIQUERYRESULT;
//
//IO port read write request package
//the return is value read, or write result
//
typedef struct IOReadWritePack{
BOOLEAN isRead;
ULONG portAddress;
ULONG portValue;
ULONG rwSize;
}IOPORTRWP, *PIOPORTRWP;
//
//Memory read request package
//
typedef struct MemoryReadWritePack{
BOOLEAN isRead;
ULONG memoryAddress;
ULONG rSize;
}MEMORYRP, *PMEMORYRP;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -