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

📄 projio.h

📁 RTL8139 网卡驱动源码 for WinCE.net CEPC
💻 H
字号:
//****************************************************************************
//                               File PROJIO.H
//
//                         Input/Output control codes
//
//                       Copyright (c) APSoft, 1998-2002.
//                             All rights reserved.
//
//****************************************************************************

#ifndef _PROJIO_H_
#define _PROJIO_H_

#ifndef FILE_DEVICE_UNKNOWN
#define FILE_DEVICE_UNKNOWN     0x00000022
#endif

//----------------------- Pack structures to 1 byte --------------------------

#if (!defined(_H2INC) && _MSC_VER >= 900)
#pragma pack(push, 1)                       // Pack structures to 1 byte
#endif   
                                   // #if (!defined(_H2INC) && ...


#ifndef CTL_CODE
#define CTL_CODE( DeviceType, Function, Method, Access ) (                 \
    ((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method) \
)

#define METHOD_BUFFERED                 0
#define METHOD_IN_DIRECT                1
#define METHOD_OUT_DIRECT               2
#define METHOD_NEITHER                  3

#define FILE_ANY_ACCESS                 0
#define FILE_READ_ACCESS          ( 0x0001 )    // file & pipe
#define FILE_WRITE_ACCESS         ( 0x0002 )    // file & pipe
#endif

typedef union tagDRIVER_VERSION
{
    DWORD       dwVersion;
    struct
    {
        BYTE    bMajor;
        BYTE    bMinor;
        WORD    wAPI;
    };
} DRIVER_VERSION, * PDRIVER_VERSION;

typedef struct tagGET_READMEMORY
{
    DWORD       dwOffset;
    DWORD       dwLength;
} GET_READMEMORY, * PGET_READMEMORY;

typedef struct tagGET_DEVICE_ID
{
    USHORT  uLength;                        // Size of string
    WCHAR   wszDevID[1];                    // Device ID
} GET_DEVICE_ID, * PGET_DEVICE_ID;

typedef enum tagCS_TYPE
{
    CSTYPE_NULL        = 0x00,              // No device
    CSTYPE_ROM,                             // Read-Only memory
    CSTYPE_OTPROM,                          // On time programable ROM
    CSTYPE_EPROM,                           // UV EPROM
    CSTYPE_EEPROM,                          // EEPROM
    CSTYPE_FLASH,                           // Flash EPROM
    CSTYPE_SRAM,                            // Static RAM
    CSTYPE_DRAM,                            // Dynamic RAM
    CSTYPE_FUNCSPEC    = 0x0D,              // Function specific memory
                                            // address range, includes memory
                                            // mapped I/O registers,
                                            // dual-ported memory,
                                            // communication buffers, etc.,
                                            // which are not intended to be
                                            // used as general-purpose memory.
    CSTYPE_EXTENDED,                        // Extended type follow

    CSTYPE_ATA          = 0xFE              // ATA card
} CS_TYPE;

//----------------------- Restore structure packing --------------------------

#if (!defined(_H2INC) && _MSC_VER >= 900)
#pragma pack(pop)                           // Restore structure packing
#endif                                      // #if (!defined(_H2INC) && ...

//////////////////////////////////////////////////////////////////////////////
// Retrieve version of driver
// ---------------------------------------------------------------------------
// Input  - None
// Output - Four bytes of driver version
//////////////////////////////////////////////////////////////////////////////
#define IOCTL_GET_VERSION               CTL_CODE(FILE_DEVICE_UNKNOWN,          \
                                                 0x1,                          \
                                                 METHOD_BUFFERED,              \
                                                 FILE_ANY_ACCESS)

//////////////////////////////////////////////////////////////////////////////
// Retrieve device ID + instance ID size (with NULL)
// ---------------------------------------------------------------------------
// Input  - None
// Output - DWORD with size
//////////////////////////////////////////////////////////////////////////////
#define IOCTL_GET_ID_SIZE               CTL_CODE(FILE_DEVICE_UNKNOWN,          \
                                                 0x2,                          \
                                                 METHOD_BUFFERED,              \
                                                 FILE_ANY_ACCESS)

//////////////////////////////////////////////////////////////////////////////
// Retrieve device ID + instance ID
// ---------------------------------------------------------------------------
// Input  - none
// Output - WCHAR *
//////////////////////////////////////////////////////////////////////////////
#define IOCTL_GET_ID                   CTL_CODE(FILE_DEVICE_UNKNOWN,          \
                                                 0x3,                          \
                                                 METHOD_BUFFERED,              \
                                                 FILE_ANY_ACCESS)

//////////////////////////////////////////////////////////////////////////////
// Retrieve device ID + instance ID (asynchronous)
// ---------------------------------------------------------------------------
// Input  - none
// Output - WCHAR *
//////////////////////////////////////////////////////////////////////////////
#define IOCTL_GET_ID_ASYNC              CTL_CODE(FILE_DEVICE_UNKNOWN,          \
                                                 0x4,                          \
                                                 METHOD_BUFFERED,              \
                                                 FILE_ANY_ACCESS)

//////////////////////////////////////////////////////////////////////////////
// Retrieve device ID + instance ID (asynchronous)
// ---------------------------------------------------------------------------
// Input  - none
// Output - WCHAR *
//////////////////////////////////////////////////////////////////////////////
#define IOCTL_GET_MEMORY               CTL_CODE(FILE_DEVICE_UNKNOWN,          \
                                                 0x5,                          \
                                                 METHOD_BUFFERED,              \
                                                 FILE_ANY_ACCESS)

//////////////////////////////////////////////////////////////////////////////
// Retrieve device ID + instance ID (asynchronous)
// ---------------------------------------------------------------------------
// Input  - none
// Output - WCHAR *
//////////////////////////////////////////////////////////////////////////////
#define IOCTL_GET_CIS                  CTL_CODE(FILE_DEVICE_UNKNOWN,          \
												 0x6,                          \
                                                 METHOD_BUFFERED,              \
                                                 FILE_ANY_ACCESS)

//////////////////////////////////////////////////////////////////////////////
// Retrieve device ID + instance ID (asynchronous)
// ---------------------------------------------------------------------------
// Input  - none
// Output - WCHAR *
//////////////////////////////////////////////////////////////////////////////
#define IOCTL_REG_CLIENT               CTL_CODE(FILE_DEVICE_UNKNOWN,          \
												 0x7,                          \
                                                 METHOD_BUFFERED,              \
                                                 FILE_ANY_ACCESS)

//////////////////////////////////////////////////////////////////////////////
// Retrieve device ID + instance ID (asynchronous)
// ---------------------------------------------------------------------------
// Input  - none
// Output - WCHAR *
//////////////////////////////////////////////////////////////////////////////
#define IOCTL_REL_CLIENT               CTL_CODE(FILE_DEVICE_UNKNOWN,          \
												 0x8,                          \
                                                 METHOD_BUFFERED,              \
                                                 FILE_ANY_ACCESS)

//////////////////////////////////////////////////////////////////////////////
// Retrieve device ID + instance ID
// ---------------------------------------------------------------------------
// Input  - none
// Output - WCHAR *
//////////////////////////////////////////////////////////////////////////////
#define IOCTL_GET_MASK                  CTL_CODE(FILE_DEVICE_UNKNOWN,          \
                                                 0x9,                          \
                                                 METHOD_BUFFERED,              \
                                                 FILE_ANY_ACCESS)

#endif                                      // #ifndef _PROJIO_H_

⌨️ 快捷键说明

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