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

📄 ndishapi.h

📁 这个是无线网卡WirelessLAN 测试程序NDIS
💻 H
📖 第 1 页 / 共 2 页
字号:
#ifndef __NDISHAPI_H__
#define __NDISHAPI_H__

/* Header For IOCTL's
---------------------
 * This header references the CTL_CODE macro and the METHOD_XYZ definitions.
 * These are defined in the VC/SDK WinIoctl.h header for applications and
 * in the DDK DevIoctl.h for drivers. Unfortunately, including WinIoctl.h
 * when compiling a NT device drivers causes problems.
 *
 * The following preprocessor directive includes the <WinIoctl.h> header
 * when compiling a Win32 application or DLL. The driver includes DevIoctl.h
 * through a different mechanism.
 */

#ifdef _WINDOWS
#include <WinIoctl.h>   // Compiling Win32 Applications Or DLL's
#endif // _WINDOWS

#include "PCAEnet.h"
#include "W32Ndis.h"

/////////////////////////////////////////////////////////////////////////////
//// INCLUDE FILES

// Copyright And Configuration Management ----------------------------------
//
//               PCANDIS Protocol Driver IOCTL Codes - NdisHApi.H
//
//                      Win32 NDIS Framework (WinDis 32)
//                                    For
//                         Windows NT And Windows 9X
//
//     Copyright (c) 1995-2001, Printing Communications Associates, Inc.
//                          http://www.pcausa.com
//
//                             Thomas F. Divine
//                           4201 Brunswick Court
//                        Smyrna, Georgia 30080 USA
//                              (770) 432-4580
//                         mailto:tdivine@pcausa.com
//
//
// 
// End ---------------------------------------------------------------------

//
// PCANDIS Transport Name Strings
//
#define PCANDIS3_BASE_NAME_A        "ZDNDIS3"
#define PCANDIS3_BASE_NAME_W        L"ZDNDIS3"
#define PCANDIS3_PROTOCOL_NAME_A    PCANDIS3_BASE_NAME_A
#define PCANDIS3_PROTOCOL_NAME_W    PCANDIS3_BASE_NAME_W
#define PCANDIS3_DISPLAY_NAME_A     "ZDNDIS3 Protocol Driver"
#define PCANDIS3_DISPLAY_NAME_W     L"ZDNDIS3 Protocol Driver"

#define PCANDIS4_BASE_NAME_A        "ZDNDIS4"
#define PCANDIS4_BASE_NAME_W        L"ZDNDIS4"
#define PCANDIS4_PROTOCOL_NAME_A    PCANDIS4_BASE_NAME_A
#define PCANDIS4_PROTOCOL_NAME_W    PCANDIS4_BASE_NAME_W
#define PCANDIS4_DISPLAY_NAME_A     "ZDNDIS4 Protocol Driver"
#define PCANDIS4_DISPLAY_NAME_W     L"ZDNDIS4 Protocol Driver"
#define PCANDIS4_DEVICE_NAME_A      "\\Device\\ZDNDIS4"
#define PCANDIS4_DEVICE_NAME_W      L"\\Device\\ZDNDIS4"

#define PCANDIS5_BASE_NAME_A        "ZDNDIS5"
#define PCANDIS5_BASE_NAME_W        L"ZDNDIS5"
#define PCANDIS5_PROTOCOL_NAME_A    PCANDIS5_BASE_NAME_A
#define PCANDIS5_PROTOCOL_NAME_W    PCANDIS5_BASE_NAME_W
#define PCANDIS5_DISPLAY_NAME_A     "ZDNDIS5 Protocol Driver"
#define PCANDIS5_DISPLAY_NAME_W     L"ZDNDIS5 Protocol Driver"
#define PCANDIS5_DEVICE_NAME_A      "\\Device\\ZDNDIS5"
#define PCANDIS5_DEVICE_NAME_W      L"\\Device\\ZDNDIS5"

#ifdef UNICODE

#define PCANDIS3_BASE_NAME       PCANDIS3_BASE_NAME_W
#define PCANDIS3_PROTOCOL_NAME   PCANDIS3_BASE_NAME_W
#define PCANDIS3_DISPLAY_NAME    PCANDIS3_DISPLAY_NAME_W

#define PCANDIS4_BASE_NAME       PCANDIS4_BASE_NAME_W
#define PCANDIS4_PROTOCOL_NAME   PCANDIS4_BASE_NAME_W
#define PCANDIS4_DISPLAY_NAME    PCANDIS4_DISPLAY_NAME_W
#define PCANDIS4_DEVICE_NAME     PCANDIS4_DEVICE_NAME_W

#define PCANDIS5_BASE_NAME       PCANDIS5_BASE_NAME_W
#define PCANDIS5_PROTOCOL_NAME   PCANDIS5_BASE_NAME_W
#define PCANDIS5_DISPLAY_NAME    PCANDIS5_DISPLAY_NAME_W
#define PCANDIS5_DEVICE_NAME     PCANDIS5_DEVICE_NAME_W

#else

#define PCANDIS3_BASE_NAME       PCANDIS3_BASE_NAME_A
#define PCANDIS3_PROTOCOL_NAME   PCANDIS3_BASE_NAME_A
#define PCANDIS3_DISPLAY_NAME    PCANDIS3_DISPLAY_NAME_A

#define PCANDIS4_BASE_NAME       PCANDIS4_BASE_NAME_A
#define PCANDIS4_PROTOCOL_NAME   PCANDIS4_BASE_NAME_A
#define PCANDIS4_DISPLAY_NAME    PCANDIS4_DISPLAY_NAME_A
#define PCANDIS4_DEVICE_NAME     PCANDIS4_DEVICE_NAME_A

#define PCANDIS5_BASE_NAME       PCANDIS5_BASE_NAME_A
#define PCANDIS5_PROTOCOL_NAME   PCANDIS5_BASE_NAME_A
#define PCANDIS5_DISPLAY_NAME    PCANDIS5_DISPLAY_NAME_A
#define PCANDIS5_DEVICE_NAME     PCANDIS4_DEVICE_NAME_A

#endif


//
// WinDis 32 API Version Information
// ---------------------------------
// Make sure that this is coordinated with information in the VERSION
// resource.
//
#define PCANDIS_API_VERSION     0x05000D32

/////////////////////////////////////////////////////////////////////////////
//// Linked List Definitions And Macros
//
// Modeled after Kernel-Mode/NDIS LIST_ENTRY functionality

typedef
struct _W32N_LIST_ENTRY
{
   struct _W32N_LIST_ENTRY *Flink;
   struct _W32N_LIST_ENTRY *Blink;
}
   W32N_LIST_ENTRY, *PW32N_LIST_ENTRY;

//
//  VOID
//  W32N_InitListHead(
//      PW32N_LIST_ENTRY ListHead
//      );
//

#define W32N_InitListHead(ListHead) (\
    (ListHead)->Flink = (ListHead)->Blink = (ListHead) )

//
//  BOOLEAN
//  W32N_IsListEmpty(
//      PW32N_LIST_ENTRY ListHead
//      );
//

#define W32N_IsListEmpty(ListHead) (\
    ( ((ListHead)->Flink == (ListHead)) ? TRUE : FALSE ) )

//
//  PW32N_LIST_ENTRY
//  W32N_RemoveHeadList(
//      PW32N_LIST_ENTRY ListHead
//      );
//

#define W32N_RemoveHeadList(ListHead) \
    (ListHead)->Flink;\
    {\
    PW32N_LIST_ENTRY FirstEntry;\
    FirstEntry = (ListHead)->Flink;\
    FirstEntry->Flink->Blink = (ListHead);\
    (ListHead)->Flink = FirstEntry->Flink;\
    }

//
//  PW32N_LIST_ENTRY
//  W32N_RemoveTailList(
//      PW32N_LIST_ENTRY ListHead
//      );
//

#define W32N_RemoveTailList(ListHead) \
    (ListHead)->Blink;\
    {W32N_RemoveEntryList((ListHead)->Blink)}

//
//  VOID
//  W32N_RemoveEntryList(
//      PW32N_LIST_ENTRY Entry
//      );
//

#define W32N_RemoveEntryList(Entry) {\
    PW32N_LIST_ENTRY _EX_Entry;\
    _EX_Entry = (Entry);\
    _EX_Entry->Blink->Flink = _EX_Entry->Flink;\
    _EX_Entry->Flink->Blink = _EX_Entry->Blink;\
    }

//
//  VOID
//  W32N_InsertTailList(
//      PW32N_LIST_ENTRY ListHead,
//      PW32N_LIST_ENTRY Entry
//      );
//

#define W32N_InsertTailList(ListHead,Entry) \
    (Entry)->Flink = (ListHead);\
    (Entry)->Blink = (ListHead)->Blink;\
    (ListHead)->Blink->Flink = (Entry);\
    (ListHead)->Blink = (Entry)

//
//  VOID
//  W32N_InsertHeadList(
//      PW32N_LIST_ENTRY ListHead,
//      PW32N_LIST_ENTRY Entry
//      );
//

#define W32N_InsertHeadList(ListHead,Entry) \
    (Entry)->Flink = (ListHead)->Flink;\
    (Entry)->Blink = (ListHead);\
    (ListHead)->Flink->Blink = (Entry);\
    (ListHead)->Flink = (Entry)


/////////////////////////////////////////////////////////////////////////////
//// Function Codes For PCANDIS Protocol (Transport) Driver
//
// Passed in AL register on DeviceioControl call.
// Macros and public IOCTL device codes are defined in WINIOCTL.H.
//

#define FILE_DEVICE_PROTOCOL        0x8000
#define IOCTL_PCANDIS_BASE         FILE_DEVICE_PROTOCOL

#define IOCTL_PCANDIS_BIND_ADAPTER\
   CTL_CODE(IOCTL_PCANDIS_BASE, 0, METHOD_BUFFERED, FILE_ANY_ACCESS)

#define IOCTL_PCANDIS_UNBIND_ADAPTER\
   CTL_CODE(IOCTL_PCANDIS_BASE, 1, METHOD_BUFFERED, FILE_ANY_ACCESS)

#define IOCTL_PCANDIS_OPEN_ADAPTER\
   CTL_CODE(IOCTL_PCANDIS_BASE, 2, METHOD_BUFFERED, FILE_ANY_ACCESS)

#define IOCTL_PCANDIS_CLOSE_ADAPTER\
   CTL_CODE(IOCTL_PCANDIS_BASE, 3, METHOD_BUFFERED, FILE_ANY_ACCESS)

#define IOCTL_PCANDIS_REQUEST\
   CTL_CODE(IOCTL_PCANDIS_BASE, 4, METHOD_BUFFERED, FILE_ANY_ACCESS)

⌨️ 快捷键说明

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