亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? passthru.h

?? <Visual C++ 網絡程序設計實例詳解>配套源碼
?? H
字號:
/*++

Copyright (c) 1992-2000  Microsoft Corporation

Module Name:

    passthru.h

Abstract:

    Ndis Intermediate Miniport driver sample. This is a passthru driver.

Author:

Environment:


Revision History:

 
--*/

#ifdef NDIS51_MINIPORT
#define PASSTHRU_MAJOR_NDIS_VERSION            5
#define PASSTHRU_MINOR_NDIS_VERSION            1
#else
#define PASSTHRU_MAJOR_NDIS_VERSION            4
#define PASSTHRU_MINOR_NDIS_VERSION            0
#endif

#ifdef NDIS51
#define PASSTHRU_PROT_MAJOR_NDIS_VERSION    5
#define PASSTHRU_PROT_MINOR_NDIS_VERSION    0
#else
#define PASSTHRU_PROT_MAJOR_NDIS_VERSION    4
#define PASSTHRU_PROT_MINOR_NDIS_VERSION    0
#endif

#define MAX_BUNDLEID_LENGTH 50

#define TAG 'ImPa'
#define WAIT_INFINITE 0



//advance declaration
typedef struct _ADAPT ADAPT, *PADAPT;

// BEGIN_PTUSERIO
typedef struct _OPEN_CONTEXT OPEN_CONTEXT, *POPEN_CONTEXT;
// END_PTUSERIO

extern
NTSTATUS
DriverEntry(
    IN PDRIVER_OBJECT            DriverObject,
    IN PUNICODE_STRING           RegistryPath
    );

NTSTATUS
PtDispatch(
    IN PDEVICE_OBJECT            DeviceObject,
    IN PIRP                      Irp
    );

NDIS_STATUS
PtRegisterDevice(
    VOID
    );

NDIS_STATUS
PtDeregisterDevice(
    VOID
   );

VOID
PtUnloadProtocol(
    VOID
    );

//
// Protocol proto-types
//
extern
VOID
PtOpenAdapterComplete(
    IN NDIS_HANDLE                ProtocolBindingContext,
    IN NDIS_STATUS                Status,
    IN NDIS_STATUS                OpenErrorStatus
    );

extern
VOID
PtCloseAdapterComplete(
    IN NDIS_HANDLE                ProtocolBindingContext,
    IN NDIS_STATUS                Status
    );

extern
VOID
PtResetComplete(
    IN NDIS_HANDLE                ProtocolBindingContext,
    IN NDIS_STATUS                Status
    );

extern
VOID
PtRequestComplete(
    IN NDIS_HANDLE                ProtocolBindingContext,
    IN PNDIS_REQUEST              NdisRequest,
    IN NDIS_STATUS                Status
    );

extern
VOID
PtStatus(
    IN NDIS_HANDLE                ProtocolBindingContext,
    IN NDIS_STATUS                GeneralStatus,
    IN PVOID                      StatusBuffer,
    IN UINT                       StatusBufferSize
    );

extern
VOID
PtStatusComplete(
    IN NDIS_HANDLE                ProtocolBindingContext
    );

extern
VOID
PtSendComplete(
    IN NDIS_HANDLE                ProtocolBindingContext,
    IN PNDIS_PACKET               Packet,
    IN NDIS_STATUS                Status
    );

extern
VOID
PtTransferDataComplete(
    IN NDIS_HANDLE                ProtocolBindingContext,
    IN PNDIS_PACKET               Packet,
    IN NDIS_STATUS                Status,
    IN UINT                       BytesTransferred
    );

extern
NDIS_STATUS
PtReceive(
    IN NDIS_HANDLE                ProtocolBindingContext,
    IN NDIS_HANDLE                MacReceiveContext,
    IN PVOID                      HeaderBuffer,
    IN UINT                       HeaderBufferSize,
    IN PVOID                      LookAheadBuffer,
    IN UINT                       LookaheadBufferSize,
    IN UINT                       PacketSize
    );

extern
VOID
PtReceiveComplete(
    IN NDIS_HANDLE                ProtocolBindingContext
    );

extern
INT
PtReceivePacket(
    IN NDIS_HANDLE                ProtocolBindingContext,
    IN PNDIS_PACKET               Packet
    );

extern
VOID
PtBindAdapter(
    OUT PNDIS_STATUS              Status,
    IN  NDIS_HANDLE               BindContext,
    IN  PNDIS_STRING              DeviceName,
    IN  PVOID                     SystemSpecific1,
    IN  PVOID                     SystemSpecific2
    );

extern
VOID
PtUnbindAdapter(
    OUT PNDIS_STATUS              Status,
    IN  NDIS_HANDLE               ProtocolBindingContext,
    IN  NDIS_HANDLE               UnbindContext
    );
    
VOID
PtUnload(
    IN PDRIVER_OBJECT             DriverObject
    );



extern 
NDIS_STATUS
PtPNPHandler(
    IN NDIS_HANDLE                ProtocolBindingContext,
    IN PNET_PNP_EVENT             pNetPnPEvent
    );




NDIS_STATUS
PtPnPNetEventReconfigure(
    IN PADAPT            pAdapt,
    IN PNET_PNP_EVENT    pNetPnPEvent
    );    

NDIS_STATUS 
PtPnPNetEventSetPower (
    IN PADAPT                    pAdapt,
    IN PNET_PNP_EVENT            pNetPnPEvent
    );
    

//
// Miniport proto-types
//
NDIS_STATUS
MPInitialize(
    OUT PNDIS_STATUS             OpenErrorStatus,
    OUT PUINT                    SelectedMediumIndex,
    IN PNDIS_MEDIUM              MediumArray,
    IN UINT                      MediumArraySize,
    IN NDIS_HANDLE               MiniportAdapterHandle,
    IN NDIS_HANDLE               WrapperConfigurationContext
    );

VOID
MPSendPackets(
    IN NDIS_HANDLE                MiniportAdapterContext,
    IN PPNDIS_PACKET              PacketArray,
    IN UINT                       NumberOfPackets
    );

NDIS_STATUS
MPSend(
    IN NDIS_HANDLE                MiniportAdapterContext,
    IN PNDIS_PACKET               Packet,
    IN UINT                       Flags
    );

NDIS_STATUS
MPQueryInformation(
    IN NDIS_HANDLE                MiniportAdapterContext,
    IN NDIS_OID                   Oid,
    IN PVOID                      InformationBuffer,
    IN ULONG                      InformationBufferLength,
    OUT PULONG                    BytesWritten,
    OUT PULONG                    BytesNeeded
    );

NDIS_STATUS
MPSetInformation(
    IN NDIS_HANDLE                MiniportAdapterContext,
    IN NDIS_OID                   Oid,
    IN PVOID                      InformationBuffer,
    IN ULONG                      InformationBufferLength,
    OUT PULONG                    BytesRead,
    OUT PULONG                    BytesNeeded
    );

VOID
MPReturnPacket(
    IN NDIS_HANDLE                MiniportAdapterContext,
    IN PNDIS_PACKET               Packet
    );

NDIS_STATUS
MPTransferData(
    OUT PNDIS_PACKET              Packet,
    OUT PUINT                     BytesTransferred,
    IN NDIS_HANDLE                MiniportAdapterContext,
    IN NDIS_HANDLE                MiniportReceiveContext,
    IN UINT                       ByteOffset,
    IN UINT                       BytesToTransfer
    );

VOID
MPHalt(
    IN NDIS_HANDLE                MiniportAdapterContext
    );


VOID
MPQueryPNPCapabilities(  
    OUT PADAPT                    MiniportProtocolContext, 
    OUT PNDIS_STATUS              Status
    );


NDIS_STATUS
MPSetMiniportSecondary ( 
    IN PADAPT                    Secondary, 
    IN PADAPT                    Primary
    );

#ifdef NDIS51_MINIPORT

VOID
MPCancelSendPackets(
    IN NDIS_HANDLE            MiniportAdapterContext,
    IN PVOID                  CancelId
    );

VOID
MPAdapterShutdown(
    IN NDIS_HANDLE                MiniportAdapterContext
    );

VOID
MPDevicePnPEvent(
    IN NDIS_HANDLE                MiniportAdapterContext,
    IN NDIS_DEVICE_PNP_EVENT      DevicePnPEvent,
    IN PVOID                      InformationBuffer,
    IN ULONG                      InformationBufferLength
    );

#endif // NDIS51_MINIPORT

VOID
MPFreeAllPacketPools(
    IN PADAPT                    pAdapt
    );

NDIS_STATUS 
MPPromoteSecondary ( 
    IN PADAPT                    pAdapt 
    );


NDIS_STATUS 
MPBundleSearchAndSetSecondary (
    IN PADAPT                    pAdapt 
    );

VOID
MPProcessSetPowerOid(
    IN OUT PNDIS_STATUS          pNdisStatus,
    IN PADAPT                    pAdapt,
    IN PVOID                     InformationBuffer,
    IN ULONG                     InformationBufferLength,
    OUT PULONG                   BytesRead,
    OUT PULONG                   BytesNeeded
    );


//
// There should be no DbgPrint's in the Free version of the driver
//
#if DBG

#define DBGPRINT(Fmt)                                        \
    {                                                        \
        DbgPrint("Passthru: ");                                \
        DbgPrint Fmt;                                        \
    }

#else // if DBG

#define DBGPRINT(Fmt)                                            

#endif // if DBG 

#define    NUM_PKTS_IN_POOL    256


//
// Protocol reserved part of a sent packet that is allocated by us.
//
typedef struct _SEND_RSVD
{
    PNDIS_PACKET    OriginalPkt;
} SEND_RSVD, *PSEND_RSVD;

//
// Miniport reserved part of a received packet that is allocated by
// us. Note that this should fit into the MiniportReserved space
// in an NDIS_PACKET.
//
typedef struct _RECV_RSVD
{
    PNDIS_PACKET    OriginalPkt;
} RECV_RSVD, *PRECV_RSVD;

C_ASSERT(sizeof(RECV_RSVD) <= sizeof(((PNDIS_PACKET)0)->MiniportReserved));

//
// Event Codes related to the PassthruEvent Structure
//

typedef enum 
{
    Passthru_Invalid,
    Passthru_SetPower,
    Passthru_Unbind

} PASSSTHRU_EVENT_CODE, *PPASTHRU_EVENT_CODE; 

//
// Passthru Event with  a code to state why they have been state
//

typedef struct _PASSTHRU_EVENT
{
    NDIS_EVENT Event;
    PASSSTHRU_EVENT_CODE Code;

} PASSTHRU_EVENT, *PPASSTHRU_EVENT;


//
// Structure used by both the miniport as well as the protocol part of the intermediate driver
// to represent an adapter and its corres. lower bindings
//
typedef struct _ADAPT
{
    struct _ADAPT *                Next;
    
    NDIS_HANDLE                    BindingHandle;    // To the lower miniport
    NDIS_HANDLE                    MiniportHandle;    // NDIS Handle to for miniport up-calls
    NDIS_HANDLE                    SendPacketPoolHandle;
    NDIS_HANDLE                    RecvPacketPoolHandle;
    NDIS_STATUS                    Status;            // Open Status
    NDIS_EVENT                     Event;            // Used by bind/halt for Open/Close Adapter synch.
    NDIS_MEDIUM                    Medium;
    NDIS_REQUEST                   Request;        // This is used to wrap a request coming down
                                                // to us. This exploits the fact that requests
                                                // are serialized down to us.
    PULONG                         BytesNeeded;
    PULONG                         BytesReadOrWritten;
    BOOLEAN                        IndicateRcvComplete;
    
    BOOLEAN                        OutstandingRequests;      // TRUE iff a request is pending
                                                        // at the miniport below
    BOOLEAN                        QueuedRequest;            // TRUE iff a request is queued at
                                                        // this IM miniport

    BOOLEAN                        StandingBy;                // True - When the miniport or protocol is transitioning from a D0 to Standby (>D0) State
    BOOLEAN                        UnbindingInProcess;
    NDIS_SPIN_LOCK                 Lock;
                                                        // False - At all other times, - Flag is cleared after a transition to D0

    NDIS_DEVICE_POWER_STATE        MPDeviceState;            // Miniport's Device State 
    NDIS_DEVICE_POWER_STATE        PTDeviceState;            // Protocol's Device State 
    NDIS_STRING                    DeviceName;                // For initializing the miniport edge

// BEGIN_PTUSERIO
    NDIS_STRING                    LowerDeviceName;     // 設備對象的名稱,這是傳遞給NdisOpenAdapter的參數
    
    ULONG                          RefCount;			// 此結構的引用計數
    POPEN_CONTEXT                  pOpenContext;
// END_PTUSERIO

    NDIS_EVENT                     MiniportInitEvent;        // For blocking UnbindAdapter while
                                                        // an IM Init is in progress.
    BOOLEAN                        MiniportInitPending;    // TRUE iff IMInit in progress
    NDIS_STATUS                    LastIndicatedStatus;    // The last indicated media status
    NDIS_STATUS                    LatestUnIndicateStatus; // The latest suppressed media status
    ULONG                          OutstandingSends;

// BEGIN_PTEX_FILTER
    //
    // Per-Adapter Filter-Specific Area
    //
    ULONG                          FilterReserved[16];
// END_PTEX_FILTER


} ADAPT, *PADAPT;

extern    NDIS_HANDLE                        ProtHandle, DriverHandle;
extern    NDIS_MEDIUM                        MediumArray[4];
extern    PADAPT                             pAdaptList;
extern    NDIS_SPIN_LOCK                     GlobalLock;


#define ADAPT_MINIPORT_HANDLE(_pAdapt)    ((_pAdapt)->MiniportHandle)
#define ADAPT_DECR_PENDING_SENDS(_pAdapt)     \
    {                                         \
        NdisAcquireSpinLock(&(_pAdapt)->Lock);   \
        (_pAdapt)->OutstandingSends--;           \
        NdisReleaseSpinLock(&(_pAdapt)->Lock);   \
    }

//
// Custom Macros to be used by the passthru driver 
//
/*
BOOLEAN
IsIMDeviceStateOn(
   PADAPT 
   )

*/
#define IsIMDeviceStateOn(_pP)        ((_pP)->MPDeviceState == NdisDeviceStateD0 && (_pP)->PTDeviceState == NdisDeviceStateD0 ) 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人av电影在线播放| 日韩中文字幕一区二区三区| 亚洲另类在线一区| 久国产精品韩国三级视频| 在线亚洲精品福利网址导航| 国产日韩欧美麻豆| 91国偷自产一区二区三区成为亚洲经典| 丰满放荡岳乱妇91ww| 欧美精品777| 亚洲精品成a人| 亚洲成av人片在线| 日韩电影在线一区二区| 91麻豆.com| 国产精品初高中害羞小美女文 | 精品在线播放免费| 国产一区美女在线| 亚洲欧美激情插| 色综合久久中文字幕| 午夜不卡av免费| 色综合久久久久网| 国产精品白丝在线| 成人性生交大片免费看视频在线| 国模冰冰炮一区二区| 欧美一区二区三区公司| 2024国产精品| 久久电影网电视剧免费观看| 91精品免费在线观看| 性感美女久久精品| 国产一区二区在线影院| 欧美xxxxx牲另类人与| 美美哒免费高清在线观看视频一区二区| 国产美女在线精品| 久久久国产精华| 性做久久久久久久免费看| 欧美天堂一区二区三区| 日韩精品一级中文字幕精品视频免费观看 | 午夜亚洲福利老司机| 色综合天天综合网天天狠天天| 欧美天堂亚洲电影院在线播放| 日韩免费高清视频| 日韩成人av影视| 99视频精品在线| 亚洲欧洲中文日韩久久av乱码| 日本美女一区二区三区视频| 日韩色视频在线观看| 久久99精品久久久久久| 国产清纯美女被跳蛋高潮一区二区久久w| 伊人开心综合网| 色国产综合视频| 国产精品一区二区在线观看不卡| 成人一区二区三区| 国产欧美精品一区| 99热精品一区二区| 亚洲线精品一区二区三区 | 国产精品国产三级国产aⅴ原创| 日韩电影一二三区| 日韩美女一区二区三区四区| 亚洲欧美色一区| 欧美日韩三级一区| 精品中文字幕一区二区| 国产精品视频yy9299一区| 91同城在线观看| 欧美亚洲综合久久| 久久国产精品99久久人人澡| 欧美激情在线免费观看| 色呦呦国产精品| 激情五月激情综合网| 国产精品欧美久久久久无广告 | 成人av在线播放网站| 国产亚洲一区二区三区在线观看| 视频一区二区欧美| 91成人免费在线视频| 久久精品国产亚洲aⅴ| 亚洲国产精品成人综合| 精品一区二区三区免费播放| 制服.丝袜.亚洲.另类.中文| 亚洲成人综合网站| 久久精品综合网| 欧美日韩一区二区三区高清| 国产精品一区二区三区四区| 亚洲一区二区三区四区五区中文| 日本精品一级二级| 国产九九视频一区二区三区| 亚洲愉拍自拍另类高清精品| 久久综合九色欧美综合狠狠| 国产精品羞羞答答xxdd| 中文字幕不卡的av| 极品销魂美女一区二区三区| 日韩精品一区二区三区在线 | 国产午夜亚洲精品不卡| 久久精品噜噜噜成人av农村| 亚洲精品成人悠悠色影视| 色琪琪一区二区三区亚洲区| 国产精品综合在线视频| 日本一区中文字幕| 精品国产露脸精彩对白| 欧美偷拍一区二区| 色综合天天综合| 成人午夜电影久久影院| 国产一区二区三区黄视频 | 日本一区二区三区电影| 综合精品久久久| 日韩女优av电影在线观看| 91黄色激情网站| av成人老司机| 国产精品入口麻豆原神| 污片在线观看一区二区| 亚洲特黄一级片| 中文字幕制服丝袜一区二区三区 | 亚洲欧洲精品一区二区精品久久久| youjizz久久| 国产mv日韩mv欧美| 亚洲影视在线播放| 2024国产精品| 在线观看国产一区二区| 色婷婷综合久久久久中文一区二区| 午夜精品久久久久久久久久| 一区二区三区欧美日韩| 久久综合色播五月| 精品国产乱码久久久久久1区2区 | 色婷婷精品大在线视频| av在线不卡电影| 日韩精品久久久久久| 午夜伊人狠狠久久| 午夜电影网一区| 奇米888四色在线精品| 九色porny丨国产精品| 国产精品中文字幕一区二区三区| 亚洲小说春色综合另类电影| 日韩高清在线电影| 精品一区中文字幕| 成人天堂资源www在线| 91香蕉视频污在线| 91麻豆精品久久久久蜜臀| 日韩免费看网站| 国产精品看片你懂得| 亚洲自拍都市欧美小说| 欧美性猛片xxxx免费看久爱| 欧美一区国产二区| 久久久久久久综合日本| 宅男噜噜噜66一区二区66| 精品国产精品网麻豆系列| 中文字幕一区二区三| 色网站国产精品| 一本色道亚洲精品aⅴ| 欧美日韩久久久一区| 日韩手机在线导航| 中文字幕一区二区三区在线不卡 | 亚洲一区视频在线| 天天色综合成人网| 国产成人精品www牛牛影视| 久久爱另类一区二区小说| 高清不卡一区二区| 欧美在线视频全部完| 久久亚洲春色中文字幕久久久| 日韩一区二区在线观看视频 | 91久久国产综合久久| 精品乱人伦小说| 一区二区三区在线看| 伊人色综合久久天天| 国产综合色视频| 欧美在线观看视频在线| 99免费精品视频| 亚洲一区二区三区四区五区中文| 国产精品二三区| 日韩精品高清不卡| 日韩欧美电影在线| 亚洲精品日韩一| 国产成人在线免费观看| 欧美一区二区私人影院日本| 亚洲日穴在线视频| 国产激情一区二区三区| 成人a级免费电影| 精品久久久久久无| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 欧美精品日韩综合在线| 国产精品久久久久精k8| 亚洲欧洲中文日韩久久av乱码| 一区二区三区四区五区视频在线观看 | 在线欧美日韩精品| 精品va天堂亚洲国产| 一区二区在线电影| caoporn国产一区二区| 精品久久久久久最新网址| 久久日一线二线三线suv| 久久人人97超碰com| 国产日韩欧美一区二区三区综合| 中文字幕一区二区三区在线观看| 亚洲女女做受ⅹxx高潮| 国产成人综合亚洲91猫咪| 日韩一本二本av| 日韩有码一区二区三区| 国产精品乱码人人做人人爱 | 色偷偷一区二区三区| 国产日韩欧美精品一区| 国产主播一区二区三区| 欧美不卡一区二区三区四区| 男女性色大片免费观看一区二区| 成人自拍视频在线观看| 国产精品免费免费|