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

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

?? miniport.c

?? s3c2440 WINCE 5.00 官方bsp
?? C
?? 第 1 頁 / 共 3 頁
字號:
    case OID_GEN_MAXIMUM_LOOKAHEAD:

		GenericULong = CS8900_MAX_LOOKAHEAD;

		DEBUGMSG(1, (TEXT("----> OID_GEN_MAXIMUM_LOOKAHEAD\r\n")));
		break;


    case OID_GEN_MAXIMUM_FRAME_SIZE:

		GenericULong = (ULONG)(1514 - CS8900_HEADER_SIZE);

		DEBUGMSG(1, (TEXT("----> OID_GEN_MAXIMUM_FRAME_SIZE\r\n")));
		break;


    case OID_GEN_MAXIMUM_TOTAL_SIZE:

		GenericULong = (ULONG)(1514);

		DEBUGMSG(1, (TEXT("----> OID_GEN_TOTAL_SIZE\r\n")));
		break;


    case OID_GEN_LINK_SPEED:

		GenericULong = (ULONG)(100000);

		DEBUGMSG(1, (TEXT("----> OID_GEN_LINK_SPEED\r\n")));
		break;


    case OID_GEN_TRANSMIT_BUFFER_SPACE:

		GenericULong = (ULONG)(1514);

		DEBUGMSG(1, (TEXT("----> OID_GEN_TRANSMIT_BUFFER_SPACE\r\n")));
//		while(1);
		break;

    case OID_GEN_RECEIVE_BUFFER_SPACE:

		GenericULong = (ULONG)(1514);

		DEBUGMSG(1, (TEXT("----> OID_GEN_RECEIVE_BUFFER_SPACE\r\n")));
//		while(1);
		break;

    case OID_GEN_TRANSMIT_BLOCK_SIZE:

		GenericULong = (ULONG)(1514);

		DEBUGMSG(1, (TEXT("----> OID_GEN_TRANSMIT_BLOCK_SIZE\r\n")));
//		while(1);
		break;

    case OID_GEN_RECEIVE_BLOCK_SIZE:

		GenericULong = (ULONG)(1514);

		DEBUGMSG(1, (TEXT("----> OID_GEN_RECEIVE_BLOCK_SIZE\r\n")));
//		while(1);
		break;

#ifdef CS8900

    case OID_GEN_VENDOR_ID:

		NdisMoveMemory(
	    	(PVOID)&GenericULong,
	    	Adapter->PermanentAddress,
	    	3
	    	);
		GenericULong &=	0xFFFFFF00;
		MoveSource = (PVOID)(&GenericULong);
		MoveBytes = sizeof(GenericULong);

		DEBUGMSG(1, (TEXT("----> OID_GEN_VENDER_ID\r\n")));
		break;

    case OID_GEN_VENDOR_DESCRIPTION:

		MoveSource = (PVOID)"CS8900A Adapter";
		MoveBytes = 21;

		DEBUGMSG(1, (TEXT("----> OID_GEN_VENDOR_DESCRIPTION\r\n")));
		break;

#else

    case OID_GEN_VENDOR_ID:

		NdisMoveMemory(
	    	(PVOID)&GenericULong,
	    	Adapter->PermanentAddress,
	    	3
	    	);
		GenericULong &=	0xFFFFFF00;
		GenericULong |=	0x01;
		MoveSource = (PVOID)(&GenericULong);
		MoveBytes = sizeof(GenericULong);

		break;

    case OID_GEN_VENDOR_DESCRIPTION:

		MoveSource = (PVOID)"Novell 1000 Adapter.";
		MoveBytes = 21;

		break;

#endif

    case OID_GEN_DRIVER_VERSION:

		GenericUShort =	((USHORT)CS8900_NDIS_MAJOR_VERSION << 8) |
			CS8900_NDIS_MINOR_VERSION;

		MoveSource = (PVOID)(&GenericUShort);
		MoveBytes = sizeof(GenericUShort);
		break;

    case OID_GEN_CURRENT_LOOKAHEAD:

		GenericULong = (ULONG)(Adapter->MaxLookAhead);

		DEBUGMSG(1, (TEXT("----> OID_GEN_CURRENT_LOOKAHEAD\r\n")));
		break;

    case OID_802_3_PERMANENT_ADDRESS:

		CS8900_MOVE_MEM((PCHAR)GenericArray,
		    Adapter->PermanentAddress,
		    CS8900_LENGTH_OF_ADDRESS);

		MoveSource = (PVOID)(GenericArray);
		MoveBytes = sizeof(Adapter->PermanentAddress);

		DEBUGMSG(1, (TEXT("----> OID_802_3_PERMANENT_ADDRESS\r\n")));
		break;

    case OID_802_3_CURRENT_ADDRESS:

		CS8900_MOVE_MEM((PCHAR)GenericArray,
		    Adapter->StationAddress,
		    CS8900_LENGTH_OF_ADDRESS);

		MoveSource = (PVOID)(GenericArray);
		MoveBytes = sizeof(Adapter->StationAddress);

		DEBUGMSG(1, (TEXT("----> OID_802_3_CURRENT_ADDRESS\r\n")));
		break;

    case OID_802_3_MAXIMUM_LIST_SIZE:

		GenericULong = (ULONG) (Adapter->MulticastListMax);

		DEBUGMSG(1, (TEXT("----> OID_802_3_MAXIMUM_LIST_SIZE\r\n")));
		break;

    case OID_GEN_XMIT_OK:

		GenericULong = (UINT)(Adapter->FramesXmitGood);

		DEBUGMSG(1, (TEXT("----> OID_GEN_XMIT_OK\r\n")));
		break;

    case OID_GEN_RCV_OK:

		GenericULong = (UINT)(Adapter->FramesRcvGood);

		DEBUGMSG(1, (TEXT("----> OID_GEN_RCV_OK\r\n")));
		break;

    case OID_GEN_XMIT_ERROR:

		GenericULong = (UINT)(Adapter->FramesXmitBad);
		DEBUGMSG(1, (TEXT("----> OID_GEN_XMIT_ERROR\r\n")));
		break;

    case OID_GEN_RCV_ERROR:

		GenericULong = (UINT)(Adapter->CrcErrors);
		DEBUGMSG(1, (TEXT("----> OID_GEN_RCV_ERROR\r\n")));
		break;

    case OID_GEN_RCV_NO_BUFFER:

		GenericULong = (UINT)(Adapter->MissedPackets);
		DEBUGMSG(1, (TEXT("----> OID_GEN_RCV_NO_BUFFER\r\n")));
		break;

    case OID_802_3_RCV_ERROR_ALIGNMENT:

		GenericULong = (UINT)(Adapter->FrameAlignmentErrors);
		DEBUGMSG(1, (TEXT("----> OID_802_3_RCV_ERROR_ALIGNMENT\r\n")));
		break;

    case OID_802_3_XMIT_ONE_COLLISION:

		GenericULong = (UINT)(Adapter->FramesXmitOneCollision);
		DEBUGMSG(1, (TEXT("----> OID_802_3_XMIT_ONE_COLLISION\r\n")));
		break;

    case OID_802_3_XMIT_MORE_COLLISIONS:

		GenericULong = (UINT)(Adapter->FramesXmitManyCollisions);
		break;


    case OID_GEN_MEDIA_CONNECT_STATUS:		
		GenericULong = NdisMediaStateConnected;                 
		break;

    case OID_GEN_MAXIMUM_SEND_PACKETS:

        	GenericULong = 1;
        	break;
		
    case OID_GEN_VENDOR_DRIVER_VERSION:		
		GenericULong = (DRIVER_MAJOR_VERSION << 16) | DRIVER_MINOR_VERSION;
		break;
		

    default:

		StatusToReturn = NDIS_STATUS_INVALID_OID;
		break;

    }


    if (StatusToReturn == NDIS_STATUS_SUCCESS) {

		if (MoveBytes >	BytesLeft) {

			//
	    	// Not enough room in InformationBuffer. Punt
	    	//

	    	*BytesNeeded = MoveBytes;

	    	StatusToReturn = NDIS_STATUS_INVALID_LENGTH;

		} else {

	    	//
	    	// Store result.
	    	//

	    	CS8900_MOVE_MEM(InfoBuffer,	MoveSource, MoveBytes);

	    	(*BytesWritten) += MoveBytes;

		}
    }

	DEBUGMSG(1, (TEXT("-CS8900:CS8900QueryInformation\r\n")));
    return StatusToReturn;
}

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

/*++

Routine	Description:

    CS8900SetInformation handles a set operation for a
    single OID.

Arguments:

    MiniportAdapterContext - Context registered	with the wrapper, really
	a pointer to the adapter.

    Oid	- The OID of the set.

    InformationBuffer -	Holds the data to be set.

    InformationBufferLength - The length of InformationBuffer.

    BytesRead -	If the call is successful, returns the number
	of bytes read from InformationBuffer.

    BytesNeeded	- If there is not enough data in InformationBuffer
	to satisfy the OID, returns the	amount of storage needed.

Return Value:

    NDIS_STATUS_SUCCESS
    NDIS_STATUS_PENDING
    NDIS_STATUS_INVALID_LENGTH
    NDIS_STATUS_INVALID_OID

--*/
{
    //
    // Pointer to the adapter structure.
    //
    PCS8900_ADAPTER Adapter = (PCS8900_ADAPTER)MiniportAdapterContext;

    //
    // General Algorithm:
    //
    //	   Verify length
    //	   Switch(Request)
    //	      Process Request
    //

    UINT BytesLeft = InformationBufferLength;
    PUCHAR InfoBuffer =	(PUCHAR)(InformationBuffer);

    //
    // Variables for a particular request
    //
    UINT OidLength;

    //
    // Variables for holding the new values to be used.
    //
    ULONG LookAhead;
    ULONG Filter;

    //
    // Status of the operation.
    //
    NDIS_STATUS	StatusToReturn = NDIS_STATUS_SUCCESS;


    DEBUGMSG(1,
	(TEXT("+CS8900:CS8900SetInformation\r\n")));

    //
    // Get Oid and Length of request
    //
    OidLength =	BytesLeft;

    switch (Oid) {

    case OID_802_3_MULTICAST_LIST:

		DEBUGMSG(1, (TEXT("OID_802_3_MULTICAST_LIST\r\n")));

		//
		// Verify length
		//
		if ((OidLength % CS8900_LENGTH_OF_ADDRESS) != 0)
		{
			StatusToReturn = NDIS_STATUS_INVALID_LENGTH;

	    	*BytesRead = 0;
	    	*BytesNeeded = 0;

	   		break;
		}

		//
		// Set the new list on the adapter.
		//
		NdisMoveMemory(Adapter->Addresses, InfoBuffer, OidLength);
	
		break;

    case OID_GEN_CURRENT_PACKET_FILTER:

		DEBUGMSG(1, (TEXT("OID_GEN_CURRENT_PACKET_FILTER\r\n")));

		//
		// Verify length
		//

		if (OidLength != 4 ) {

	    	StatusToReturn = NDIS_STATUS_INVALID_LENGTH;

	    	*BytesRead = 0;
	    	*BytesNeeded = 0;

			break;

		}

		CS8900_MOVE_MEM(&Filter, InfoBuffer, 4);

		//
		// Verify bits
		//

		if (Filter & (NDIS_PACKET_TYPE_SOURCE_ROUTING |
	      	NDIS_PACKET_TYPE_SMT |
	      	NDIS_PACKET_TYPE_MAC_FRAME |
	      	NDIS_PACKET_TYPE_FUNCTIONAL |
	      	NDIS_PACKET_TYPE_ALL_FUNCTIONAL |
	      	NDIS_PACKET_TYPE_GROUP
	     	))	{

	    	StatusToReturn = NDIS_STATUS_NOT_SUPPORTED;

	    	*BytesRead = 4;
	    	*BytesNeeded = 0;

	    	break;

		}

		break;

    case OID_GEN_CURRENT_LOOKAHEAD:

		DEBUGMSG(1, (TEXT("OID_GEN_CURRENT_LOOKAHEAD\r\n")));

		//
		// Verify length
		//

		if (OidLength != 4) {
		
			StatusToReturn = NDIS_STATUS_INVALID_LENGTH;

	    	*BytesRead = 0;
	    	*BytesNeeded = 0;

	    	break;

		}

		//
		// Store the new value.
		//

		CS8900_MOVE_MEM(&LookAhead, InfoBuffer,	4);

		if (LookAhead <= CS8900_MAX_LOOKAHEAD) {
			Adapter->MaxLookAhead = LookAhead;
		} else {
			StatusToReturn = NDIS_STATUS_INVALID_LENGTH;
		}

		break;

    default:

		StatusToReturn = NDIS_STATUS_INVALID_OID;

		*BytesRead = 0;
		*BytesNeeded = 0;

		break;
    }


    if (StatusToReturn == NDIS_STATUS_SUCCESS) {

		*BytesRead = BytesLeft;
		*BytesNeeded = 0;

    }

    DEBUGMSG(1, (TEXT("-CS8900:CS8900SetInformation\r\n")));
    return(StatusToReturn);
}

VOID
CS8900CancelSendPackets(
   IN NDIS_HANDLE MiniportAdapterContext,
   IN PVOID pvCancelId
)
/*++

Routine Description:
   The miniport entry point to handle cancellation of all send packets
   that match the given CancelId. If we have queued any packets that match
   this, then we should dequeue them and call NdisMSendComplete for all
   such packets, with a status of NDIS_STATUS_REQUEST_ABORTED.

   We should also call NdisCancelSendPackets in turn, on each lower binding
   that this adapter corresponds to. This is to let miniports below cancel
   any matching packets.

Arguments:
   hMiniportAdapterContext - pointer to the binding structure
   pvCancelId - ID of packets to be cancelled.

Return Value:
   None

--*/
{
    PCS8900_ADAPTER Adapter = (PCS8900_ADAPTER)MiniportAdapterContext;


   //
   // If we queue packets on our adapter structure, this would be 
   // the place to acquire a spinlock to it, unlink any packets whose
   // Id matches CancelId, release the spinlock and call NdisMSendComplete
   // with NDIS_STATUS_REQUEST_ABORTED for all unlinked packets.
   //

   //
   // Next, pass this down so that we let the miniport(s) below cancel
   // any packets that they might have queued.
   //
//   NdisCancelSendPackets(Adapter->hPTBinding, pvCancelId);
   DEBUGMSG(ETHDBG, (TEXT("CS8900CancelSendPackets\n")));
   return;
}

VOID
CS8900DevicePnPEvent(
   IN NDIS_HANDLE MiniportAdapterContext,
   IN NDIS_DEVICE_PNP_EVENT  devicePnPEvent,
   IN PVOID pvInformationBuffer,
   IN ULONG ulInformationBufferLength
)
/*++

Routine Description:
   This handler is called to notify us of PnP events directed to
   our miniport device object.

Arguments:
   hMiniportAdapterContext  - pointer to the binding structure
   devicePnPEvent - the event
   pvInformationBuffer - points to additional event-specific information
   ulInformationBufferLength - length of above

Return Value:
   None

--*/
{
   // TBD - add code/comments about processing this.
    PCS8900_ADAPTER Adapter = (PCS8900_ADAPTER)MiniportAdapterContext;


   DEBUGMSG(ETHDBG, (TEXT("MiniportDevicePnPEvent\n")));
   return ;
}


VOID
CS8900AdapterShutdown(
   IN NDIS_HANDLE MiniportAdapterContext
)
/*++

Routine Description:
   This handler is called to notify us of an impending system shutdown.

Arguments:
   MiniportAdapterContext  - pointer to the binding structure

Return Value:
   None

--*/
{
    PCS8900_ADAPTER Adapter = (PCS8900_ADAPTER)MiniportAdapterContext;


   DEBUGMSG(ETHDBG, (TEXT("MiniportAdapterShutdown:\r\n")));
   return;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品国产亚洲a| 亚洲一区在线视频观看| 国产婷婷精品av在线| 精品福利一二区| 精品国产乱码久久久久久闺蜜| 欧美日韩国产小视频在线观看| 欧美色电影在线| 欧美疯狂做受xxxx富婆| 日韩欧美中文一区二区| 2021久久国产精品不只是精品| 欧美精品一区二区三区蜜桃| 久久久久9999亚洲精品| 国产精品嫩草影院av蜜臀| 欧美岛国在线观看| 日韩亚洲欧美综合| 在线观看亚洲精品| 风流少妇一区二区| 国产成人精品亚洲777人妖| 日韩一区精品视频| 精品国产电影一区二区| 日韩欧美国产一区在线观看| 91精品国产乱码| 欧美一区二区播放| 欧美精品一区二区在线播放| 日本一区二区免费在线| 中文字幕在线观看不卡视频| 亚洲精选视频在线| 亚洲一级二级在线| 日本sm残虐另类| 美国av一区二区| 成人污视频在线观看| 91视频www| 欧美精品视频www在线观看 | 国产高清精品网站| 成人理论电影网| 欧美在线观看视频在线| 91精品国产91综合久久蜜臀| 久久久91精品国产一区二区精品 | 欧美三日本三级三级在线播放| 欧美日韩国产系列| 日韩视频免费直播| 中文字幕中文在线不卡住| 亚洲成人一区二区| 精品一区在线看| 99精品国产91久久久久久| 欧美日韩精品一区二区| 久久久久久久久蜜桃| 一区二区三区在线视频观看 | 在线不卡的av| 国产网站一区二区| 亚洲一区二区免费视频| 国产精品99久久久久久似苏梦涵| 色噜噜狠狠色综合欧洲selulu| 日韩一区国产二区欧美三区| 国产精品欧美精品| 国产成人av资源| 欧美高清视频一二三区| 国产精品久久久久影院老司| 日韩av一区二区在线影视| 北条麻妃一区二区三区| 4438x亚洲最大成人网| 国产精品久久久久久一区二区三区| 图片区小说区国产精品视频| 丁香五精品蜜臀久久久久99网站| 欧美一级夜夜爽| 亚洲美女在线一区| 国产精品综合在线视频| 欧美精选一区二区| 中文字幕字幕中文在线中不卡视频| 美女任你摸久久| 欧美性欧美巨大黑白大战| 国产欧美日韩视频在线观看| 日韩精品一二三四| 色婷婷激情一区二区三区| 国产欧美一区二区三区鸳鸯浴 | 色94色欧美sute亚洲线路二| 亚洲精品一线二线三线无人区| 亚洲国产一区视频| 91在线免费播放| 欧美国产激情二区三区| 久久精品国产77777蜜臀| 欧美性受xxxx黑人xyx性爽| 一色桃子久久精品亚洲| 国产精品一级黄| 日韩精品中文字幕一区二区三区| 亚洲一区二区三区视频在线播放| av一区二区久久| 中文字幕精品在线不卡| 国内精品久久久久影院薰衣草| 欧美人妇做爰xxxⅹ性高电影| 亚洲欧美偷拍另类a∨色屁股| 国产福利一区二区| 久久综合资源网| 老司机午夜精品| 欧美一卡二卡三卡| 日韩成人一区二区三区在线观看| 欧美日韩午夜在线视频| 亚洲猫色日本管| 一本久久a久久免费精品不卡| 日韩理论在线观看| 99re成人精品视频| 中文字幕在线播放不卡一区| 国产精品一区二区三区99| 精品久久久久久久久久久院品网 | 美脚の诱脚舐め脚责91 | 成人欧美一区二区三区小说| 国产a精品视频| 欧美韩国日本一区| 成人午夜激情影院| 国产精品国产三级国产aⅴ入口| 国产 欧美在线| 国产欧美日韩精品一区| 成人黄色软件下载| 1000部国产精品成人观看| 97精品国产露脸对白| 亚洲男人的天堂在线aⅴ视频| 色综合久久综合网欧美综合网 | 91麻豆高清视频| 亚洲精品乱码久久久久久黑人 | 日韩一区在线播放| 色综合久久久久综合体| 亚洲成人免费av| 日韩午夜激情av| 国产美女精品在线| 中文字幕av免费专区久久| 99久久精品一区二区| 亚洲自拍偷拍图区| 91精品国产欧美日韩| 国产美女娇喘av呻吟久久| 国产精品视频免费看| 91玉足脚交白嫩脚丫在线播放| 亚洲国产综合人成综合网站| 日韩欧美一二三四区| 国产很黄免费观看久久| 亚洲免费av网站| 91精品国产91久久久久久最新毛片 | 欧美一区二区三区四区视频| 久草精品在线观看| 国产精品卡一卡二卡三| 欧美亚洲日本国产| 精品一区二区三区免费毛片爱 | 日本vs亚洲vs韩国一区三区| 久久综合九色综合久久久精品综合| 成人免费视频免费观看| 亚洲成人精品影院| 久久久蜜桃精品| 一本大道久久a久久综合| 美女脱光内衣内裤视频久久网站 | 中文字幕不卡的av| 色老头久久综合| 蜜桃视频免费观看一区| 国产精品乱码一区二三区小蝌蚪| 在线亚洲+欧美+日本专区| 久草在线在线精品观看| 一区二区三区免费| 精品91自产拍在线观看一区| 91久久精品日日躁夜夜躁欧美| 麻豆一区二区三| 亚洲制服丝袜在线| 久久久久免费观看| 欧美日韩国产一二三| 成人av综合一区| 老司机精品视频线观看86| 亚洲女与黑人做爰| 久久精品欧美日韩| 欧美日韩国产bt| 99久久夜色精品国产网站| 日本v片在线高清不卡在线观看| 亚洲天堂免费看| 久久九九全国免费| 欧美精品一二三| 91片在线免费观看| 国内精品不卡在线| 舔着乳尖日韩一区| 亚洲视频一区二区免费在线观看| 日韩午夜激情电影| 欧美日韩国产一二三| 91偷拍与自偷拍精品| 国产精品资源网| 久久精品久久99精品久久| 亚洲图片有声小说| 亚洲女同ⅹxx女同tv| 国产精品乱码人人做人人爱| 久久你懂得1024| 日韩女优毛片在线| 欧美日韩黄色影视| 色婷婷精品久久二区二区蜜臂av| 成人性生交大片免费看视频在线 | 99r精品视频| 国产精品一区在线| 精品中文字幕一区二区小辣椒| 亚洲一区二区视频| 亚洲伦理在线精品| 综合久久久久久| 国产精品久久久久久久久图文区 | 综合激情成人伊人| 国产日韩欧美精品在线| 26uuu国产日韩综合| 欧美一卡在线观看| 色婷婷国产精品|