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

📄 pxe.h

📁 WinAoE is an open source GPLv3 driver for using AoE (ATA over Ethernet) on Microsoft Windows
💻 H
📖 第 1 页 / 共 2 页
字号:
  #define PnP_NIC     3
  #define CardBus_NIC 4
  union {
    struct {
      UINT16 Vendor_ID;
      UINT16 Dev_ID;
      UINT8 Base_Class;
      UINT8 Sub_Class;
      UINT8 Prog_Intf;
      UINT8 Rev;
      UINT16 BusDevFunc;
      UINT16 SubVendor_ID;
      UINT16 SubDevice_ID;
    } __attribute__((__packed__)) pci, cardbus;
    struct {
      UINT32 EISA_Dev_ID;
      UINT8 Base_Class;
      UINT8 Sub_Class;
      UINT8 Prog_Intf;
      UINT16 CardSelNum;
    } __attribute__((__packed__)) pnp;
  } info;
} __attribute__((__packed__)) t_PXENV_UNDI_GET_NIC_TYPE;

#define PXENV_UNDI_GET_IFACE_INFO 0x0013
typedef struct s_PXENV_UNDI_GET_IFACE_INFO {
  PXENV_STATUS Status;
  UINT8 IfaceType[16];
  UINT32 LinkSpeed;
  UINT32 ServiceFlags;
  UINT32 Reserved[4];
} __attribute__((__packed__)) t_PXENV_UNDI_GET_NDIS_INFO;

#define PXENV_UNDI_ISR 0x0014
typedef struct s_PXENV_UNDI_ISR {
  PXENV_STATUS Status;
  UINT16 FuncFlag;
  #define PXENV_UNDI_ISR_IN_START      1
  #define PXENV_UNDI_ISR_IN_PROCESS    2
  #define PXENV_UNDI_ISR_IN_GET_NEXT   3
  #define PXENV_UNDI_ISR_OUT_OURS      0
  #define PXENV_UNDI_ISR_OUT_NOT_OURS  1
  #define PXENV_UNDI_ISR_OUT_DONE      0
  #define PXENV_UNDI_ISR_OUT_TRANSMIT  2
  #define PXENV_UNDI_ISR_OUT_RECEIVE   3
  #define PXENV_UNDI_ISR_OUT_BUSY      4
  UINT16 BufferLength;
  UINT16 FrameLength;
  UINT16 FrameHeaderLength;
  SEGOFF16 Frame;
  UINT8 ProtType;
  UINT8 PktType;
} __attribute__((__packed__)) t_PXENV_UNDI_ISR;

#define PXENV_UNDI_GET_STATE 0x0015
typedef struct s_PXENV_UNDI_GET_STATE {
  PXENV_STATUS Status;
  UINT8 UNDIstate;
  #define PXE_UNDI_GET_STATE_STARTED     1
  #define PXE_UNDI_GET_STATE_INITIALIZED 2
  #define PXE_UNDI_GET_STATE_OPENED      3
} __attribute__((__packed__)) t_PXENV_UNDI_GET_STATE;

#define PXENV_STOP_UNDI 0x0015
typedef struct s_PXENV_STOP_UNDI {
  PXENV_STATUS Status;
} __attribute__((__packed__)) t_PXENV_STOP_UNDI;

#define PXENV_TFTP_OPEN 0x0020
typedef struct s_PXENV_TFTP_OPEN {
  PXENV_STATUS Status;
  IP4 ServerIPAddress;
  IP4 GatewayIPAddress;
  UINT8 FileName[128];
  UDP_PORT TFTPPort;
  UINT16 PacketSize;
} __attribute__((__packed__)) t_PXENV_TFTP_OPEN;

#define PXENV_TFTP_CLOSE 0x0021
typedef struct s_PXENV_TFTP_CLOSE {
  PXENV_STATUS Status;
} __attribute__((__packed__)) t_PXENV_TFTP_CLOSE;

#define PXENV_TFTP_READ 0x0022
typedef struct s_PXENV_TFTP_READ {
  PXENV_STATUS Status;
  UINT16 PacketNumber;
  UINT16 BufferSize;
  SEGOFF16 Buffer;
} __attribute__((__packed__)) t_PXENV_TFTP_READ;

#define PXENV_TFTP_READ_FILE 0x0023
typedef struct s_PXENV_TFTP_READ_FILE {
  PXENV_STATUS Status;
  UINT8 FileName[128];
  UINT32 BufferSize;
  ADDR32 Buffer;
  IP4 ServerIPAddress;
  IP4 GatewayIPAddress;
  IP4 McastIPAddress;
  UDP_PORT TFTPClntPort;
  UDP_PORT TFTPSrvPort;
  UINT16 TFTPOpenTimeOut;
  UINT16 TFTPReopenDelay;
} __attribute__((__packed__)) t_PXENV_TFTP_READ_FILE;

#define PXENV_TFTP_GET_FSIZE 0x0025
typedef struct s_PXENV_TFTP_GET_FSIZE {
  PXENV_STATUS Status;
  IP4 ServerIPAddress;
  IP4 GatewayIPAddress;
  UINT8 FileName[128];
  UINT32 FileSize;
} __attribute__((__packed__)) t_PXENV_TFTP_GET_FSIZE;

#define PXENV_UDP_OPEN 0x0030
typedef struct s_PXENV_UDP_OPEN {
  PXENV_STATUS status;
  IP4 src_ip;
} __attribute__((__packed__)) t_PXENV_UDP_OPEN;

#define PXENV_UDP_CLOSE 0x0031
typedef struct s_PXENV_UDP_CLOSE {
  PXENV_STATUS status;
} __attribute__((__packed__)) t_PXENV_UDP_CLOSE;

#define PXENV_UDP_READ 0x0032
typedef struct s_PXENV_UDP_READ {
  PXENV_STATUS status;
  IP4 src_ip;
  IP4 dest_ip;
  UDP_PORT s_port;
  UDP_PORT d_port;
  UINT16 buffer_size;
  SEGOFF16 buffer;
} __attribute__((__packed__)) t_PXENV_UDP_READ;

#define PXENV_UDP_WRITE 0x0033
typedef struct s_PXENV_UDP_WRITE {
  PXENV_STATUS status;
  IP4 ip;
  IP4 gw;
  UDP_PORT src_port;
  UDP_PORT dst_port;
  UINT16 buffer_size;
  SEGOFF16 buffer;
} __attribute__((__packed__)) t_PXENV_UDP_WRITE;

#define PXENV_UNLOAD_STACK 0x0070
typedef struct s_PXENV_UNLOAD_STACK {
  PXENV_STATUS Status;
  UINT8 reserved[10];
} __attribute__((__packed__)) t_PXENV_UNLOAD_STACK;

#define PXENV_GET_CACHED_INFO 0x0071
typedef struct s_PXENV_GET_CACHED_INFO {
  PXENV_STATUS Status;
  UINT16 PacketType;
  #define PXENV_PACKET_TYPE_DHCP_DISCOVER 1
  #define PXENV_PACKET_TYPE_DHCP_ACK      2
  #define PXENV_PACKET_TYPE_CACHED_REPLY  3
  UINT16 BufferSize;
  SEGOFF16 Buffer;
  UINT16 BufferLimit;
} __attribute__((__packed__)) t_PXENV_GET_CACHED_INFO;

typedef struct s_bootph {
  UINT8 opcode;
  #define BOOTP_REQ 1
  #define BOOTP_REP 2
  UINT8 Hardware;
  UINT8 Hardlen;
  UINT8 Gatehops;
  UINT32 ident;
  UINT16 seconds;
  UINT16 Flags;
  #define BOOTP_BCAST 0x8000
  IP4 cip;
  IP4 yip;
  IP4 sip;
  IP4 gip;
  MAC_ADDR CAddr;
  UINT8 Sname[64];
  UINT8 bootfile[128];
  #define BOOTP_DHCPVEND 1024
  union {
    UINT8 d[BOOTP_DHCPVEND];
    struct {
      UINT8 magic[4];
      #define VM_RFC1048 0x63538263
      UINT32 flags;
      UINT8 pad[56];
    } __attribute__((__packed__)) v;
  } vendor;
} __attribute__((__packed__)) BOOTPLAYER;

#define PXENV_RESTART_TFTP 0x0073
typedef struct s_PXENV_RESTART_TFTP {
  PXENV_STATUS Status;
  IP4 ServerIPAddress;
  IP4 GatewayIPAddress;
  UINT8 FileName[128];
  UDP_PORT TFTPPort;
  UINT16 PacketSize;
} __attribute__((__packed__)) t_PXENV_RESTART_TFTP;

#define PXENV_START_BASE 0x0075
typedef struct s_PXENV_START_BASE {
  PXENV_STATUS Status;
} __attribute__((__packed__)) t_PXENV_START_BASE;

#define PXENV_STOP_BASE 0x0076
typedef struct s_PXENV_STOP_BASE {
  PXENV_STATUS Status;
} __attribute__((__packed__)) t_PXENV_STOP_BASE;

#define PXENV_EXIT_SUCCESS 0x0000
#define PXENV_EXIT_FAILURE 0x0001

#define PXENV_STATUS_SUCCESS                          0x00
#define PXENV_STATUS_FAILURE                          0x01
#define PXENV_STATUS_BAD_FUNC                         0x02
#define PXENV_STATUS_UNSUPPORTED                      0x03
#define PXENV_STATUS_KEEP_UNDI                        0x04
#define PXENV_STATUS_KEEP_ALL                         0x05
#define PXENV_STATUS_OUT_OF_RESOURCES                 0x06
#define PXENV_STATUS_ARP_TIMEOUT                      0x11
#define PXENV_STATUS_UDP_CLOSED                       0x18
#define PXENV_STATUS_UDP_OPEN                         0x19
#define PXENV_STATUS_TFTP_CLOSED                      0x1A
#define PXENV_STATUS_TFTP_OPEN                        0x1B
#define PXENV_STATUS_MCOPY_PROBLEM                    0x20
#define PXENV_STATUS_BIS_INTEGRITY_FAILURE            0x21
#define PXENV_STATUS_BIS_VALIDATE_FAILURE             0x22
#define PXENV_STATUS_BIS_INIT_FAILURE                 0x23
#define PXENV_STATUS_BIS_SHUTDOWN_FAILURE             0x24
#define PXENV_STATUS_BIS_GBOA_FAILURE                 0x25
#define PXENV_STATUS_BIS_FREE_FAILURE                 0x26
#define PXENV_STATUS_BIS_GSI_FAILURE                  0x27
#define PXENV_STATUS_BIS_BAD_CKSUM                    0x28
#define PXENV_STATUS_TFTP_CANNOT_ARP_ADDRESS          0x30
#define PXENV_STATUS_TFTP_OPEN_TIMEOUT                0x32
#define PXENV_STATUS_TFTP_UNKNOWN_OPCODE              0x33
#define PXENV_STATUS_TFTP_READ_TIMEOUT                0x35
#define PXENV_STATUS_TFTP_ERROR_OPCODE                0x36
#define PXENV_STATUS_TFTP_CANNOT_OPEN_CONNECTION      0x38
#define PXENV_STATUS_TFTP_CANNOT_READ_FROM_CONNECTION 0x39
#define PXENV_STATUS_TFTP_TOO_MANY_PACKAGES           0x3A
#define PXENV_STATUS_TFTP_FILE_NOT_FOUND              0x3B
#define PXENV_STATUS_TFTP_ACCESS_VIOLATION            0x3C
#define PXENV_STATUS_TFTP_NO_MCAST_ADDRESS            0x3D
#define PXENV_STATUS_TFTP_NO_FILESIZE                 0x3E
#define PXENV_STATUS_TFTP_INVALID_PACKET_SIZE         0x3F
#define PXENV_STATUS_DHCP_TIMEOUT                     0x51
#define PXENV_STATUS_DHCP_NO_IP_ADDRESS               0x52
#define PXENV_STATUS_DHCP_NO_BOOTFILE_NAME            0x53
#define PXENV_STATUS_DHCP_BAD_IP_ADDRESS              0x54
#define PXENV_STATUS_UNDI_INVALID_FUNCTION            0x60
#define PXENV_STATUS_UNDI_MEDIATEST_FAILED            0x61
#define PXENV_STATUS_UNDI_CANNOT_INIT_NIC_FOR_MCAST   0x62
#define PXENV_STATUS_UNDI_CANNOT_INITIALIZE_NIC       0x63
#define PXENV_STATUS_UNDI_CANNOT_INITIALIZE_PHY       0x64
#define PXENV_STATUS_UNDI_CANNOT_READ_CONFIG_DATA     0x65
#define PXENV_STATUS_UNDI_CANNOT_READ_INIT_DATA       0x66
#define PXENV_STATUS_UNDI_BAD_MAC_ADDRESS             0x67
#define PXENV_STATUS_UNDI_BAD_EEPROM_CHECKSUM         0x68
#define PXENV_STATUS_UNDI_ERROR_SETTING_ISR           0x69
#define PXENV_STATUS_UNDI_INVALID_STATE               0x6A
#define PXENV_STATUS_UNDI_TRANSMIT_ERROR              0x6B
#define PXENV_STATUS_UNDI_INVALID_PARAMETER           0x6C
#define PXENV_STATUS_BSTRAP_PROMPT_MENU               0x74
#define PXENV_STATUS_BSTRAP_MCAST_ADDR                0x76
#define PXENV_STATUS_BSTRAP_MISSING_LIST              0x77
#define PXENV_STATUS_BSTRAP_NO_RESPONSE               0x78
#define PXENV_STATUS_BSTRAP_FILE_TOO_BIG              0x79
#define PXENV_STATUS_BINL_CANCELED_BY_KEYSTROKE       0xA0
#define PXENV_STATUS_BINL_NO_PXE_SERVER               0xA1
#define PXENV_STATUS_NOT_AVAILABLE_IN_PMODE           0xA2
#define PXENV_STATUS_NOT_AVAILABLE_IN_RMODE           0xA3
#define PXENV_STATUS_BUSD_DEVICE_NOT_SUPPORTED        0xB0
#define PXENV_STATUS_LOADER_NO_FREE_BASE_MEMORY       0xC0
#define PXENV_STATUS_LOADER_NO_BC_ROMID               0xC1
#define PXENV_STATUS_LOADER_BAD_BC_ROMID              0xC2
#define PXENV_STATUS_LOADER_BAD_BC_RUNTIME_IMAGE      0xC3
#define PXENV_STATUS_LOADER_NO_UNDI_ROMID             0xC4
#define PXENV_STATUS_LOADER_BAD_UNDI_ROMID            0xC5
#define PXENV_STATUS_LOADER_BAD_UNDI_DRIVER_IMAGE     0xC6
#define PXENV_STATUS_LOADER_NO_PXE_STRUCT             0xC8
#define PXENV_STATUS_LOADER_NO_PXENV_STRUCT           0xC9
#define PXENV_STATUS_LOADER_UNDI_START                0xCA
#define PXENV_STATUS_LOADER_BC_START                  0xCB
#endif

⌨️ 快捷键说明

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