의문: 왜 무선 랜 카드 는 데 이 터 를 보 낼 수 없 습 니까?
VOID
NdisFSendNetBufferLists(
IN NDIS_HANDLE NdisFilterHandle,
IN PNET_BUFFER_LIST NetBufferLists,
IN NDIS_PORT_NUMBER PortNumber,
IN ULONG SendFlags
);
그러나 집에 돌아 와 함수 의 매개 변수 인 portNumber 를 자세히 보 았 습 니 다. 여기 서 기본 값 은 0 입 니 다. 그리고 문 제 는 여기 서 발생 할 수 있 습 니 다.
1. 만약 에 네트워크 카드 한 장 만 활성화 시 키 면 일반적인 상황 에서 이런 네트워크 카드 의 port number 는 0 이다. 이것 은 왜 유선 네트워크 카드 한 장 만 있 으 면 데 이 터 를 정상적으로 보 낼 수 있 는 지, 아니면 두 장의 네트워크 카드 의 경우 원래 두 가지 모두 데 이 터 를 보 내야 하 는데 결 과 는 하나의 데 이 터 를 포착 하 는 지 설명 하 는 것 이다.
2. 지난번 에 새로운 Mac Entity 를 만 들 었 을 때 신청 한 포트 가 1 이 었 던 것 을 기억 합 니 다.그래서 만약 에 기계 한 대가 두 장의 네트워크 카드 를 동시에 사용한다 면 한 장 에 사용 하 는 Ndis prot number 가 같 지 않 은 것 이 아 닐 까 하 는 의문 이 듭 니 다. 그 중 한 장 은 당연히 0 이 고 다른 한 장 은 1 일 수 있 습 니 다.
두 번 째 네트워크 카드 를 설정 해서 데 이 터 를 보 냈 는데 prot number 가 0 으로 채 워 져 있 으 면 문제 가 있 을 것 같 습 니 다.저 는 지금 Ndis Port 에 대해 잘 모 르 겠 습 니 다. 모든 네트워크 카드 가 하나의 miniprot driver 에 대응 하 는 것 입 니까?그리고 각각 port 를 활성화 하 는 지, 아니면 모든 기계 가 하나의 전체 miniprot driver 로 port number 를 공동으로 분배 하 는 지, 두 번 째 상황 이 라면 내 가 걱정 하 는 것 은 불필요 한 것 이 아니다.
다음 시간 내 검증: 방법 은 호출 OID_GEN_ENUMERATE_PORTS
As a query, NDIS and overlying drivers use the OID_GEN_ENUMERATE_PORTS OID to determine the characteristics of the active NDIS ports that are associated with an underlying miniport adapter.
돌아 온 결 과 는 NDIS 에 저 장 됩 니 다.PORT_ARRAY 구조 중
typedef struct _NDIS_PORT_ARRAY {
NDIS_OBJECT_HEADER Header;
ULONG NumberOfPorts;
ULONG OffsetFirstPort;
ULONG ElementSize;
NDIS_PORT_CHARACTERISTICS Ports[1];
} NDIS_PORT_ARRAY, *PNDIS_PORT_ARRAY;
Number of Ports 는 port 의 개 수 를 기록 합 니 다.
typedef struct _NDIS_PORT_CHARACTERISTICS {
NDIS_OBJECT_HEADER Header;
NDIS_PORT_NUMBER PortNumber;
...
}
이 데이터 구조 에서 ProtNumber 는 Port 의 수 치 를 표시 합 니 다. 기본 값 은 0 이 고 최대 0xFFFF 입 니 다.
================================================================================
방금 테스트 를 해 보 니 포트 의 문제 가 아 닌 것 같 습 니 다. 오히려 패 킷 의 형식 에 문제 가 있 을 수 있 습 니 다.선생님 은 네 이 티 브 와 이 파이 의 패 킷 형식 이 802.3 과 다 를 것 이 라 고 말씀 하 셨 다.그래서 아마 그 Ethernet Header 의 포맷 을 다시 설계 해 야 할 것 같은 데??
===============================================================================
나 는 어떤 사람들 에 게 물 었 는데, 그들 은 가치 가 같다 고 말 했다.그래서 저 는 테스트 를 계속 했 습 니 다. 그러면 다음 의심 은 내용 을 채 워 야 합 니 다.무선 랜 카드 의 mac 주 소 는 이 랜 카드 에 대응 하지 않 으 면 보 낼 수 없 습 니까?유선 이 더 넷 카드 는 무모하게 채 울 수 있다.그래서 나 는 맥 소스 주 소 를 다시 한 번 진지 하 게 썼 다.이번 엔 OK 야.
쓰다
1475 1291.155273 [002586 EB7B0C] [
USI 5B1430] EAPOL EAPOL:EAPOL-Start , Length = 515
구체 적 인 정 보 는 다음 과 같다.
Frame: Number = 1475, Captured Frame Length = 130, MediaType = WiFi - WiFi: [Unencrypted Data] .T...., (I) - MetaData: Version: 2 (0x2) Length: 32 (0x20) - OpMode: Extensible Station Mode StationMode: (...............................0) Not Station Mode APMode: (..............................0.) Not AP Mode ExtensibleStationMode: (.............................1..) Extensible Station Mode Unused: (.0000000000000000000000000000...) MonitorMode: (0...............................) Monitor Mode Flags: 4294967295 (0xFFFFFFFF) RemData: Outbound TimeStamp: 03/31/2010, 09:47:58 AM - FrameControl: .T.... (0x0801) Version: (..............00) 0 Type: (............10..) Data SubType: (........0000....) Data DS: (......01........) STA to DS via AP MoreFrag: (.....0..........) No Retransmission: (....0...........) No PowerMgt: (...0............) Active Mode MoreData: (..0.............) No Encrypted: (.0..............) No Order: (0...............) Unordered - Data: Duration: 32768 (0x8000) - ClientToAP: BSSID: Cisco Systems, Inc. 549143 Source: 002586 EB7B0C Destination: USI 5B1430 - SequenceControl: Sequence Number = 0 FragmentNumber: (............0000) 0 SequenceNumber: (000000000000....) 0 - LLC: Unnumbered(U) Frame, Command Frame, SSAP = SNAP(Sub-Network Access Protocol), DSAP = SNAP(Sub-Network Access Protocol) - DSAP: SNAP(Sub-Network Access Protocol), Individual DSAP Address: (1010101.) SNAP(Sub-Network Access Protocol) IG: (.......0) Individual Address - SSAP: SNAP(Sub-Network Access Protocol), Command Address: (1010101.) SNAP(Sub-Network Access Protocol) CR: (.......0) Command Frame - Unnumbered: UI - Unnumbered Information MMM: (000.....) 0 PF: (...0....) Poll Bit - No Response Solicited MM: (....00..) Type: (......11) Unnumbered(U) Frame - Snap: EtherType = EAPOL/802.1x, OrgCode = XEROX CORPORATION OrganizationCode: XEROX CORPORATION, 0(0x0000) EtherType: EAPOL/802.1x, 34958(0x888E) - Eapol: EAPOL-Start , Length = 515 Version: 0 (0x0) Type: EAPOL-Start, 1(0x01) BodyLength: 515 bytes EAPOLTypeError: EAPOL Type Error - remainder: Length = 62 Data: Binary Large Object (62 Bytes)
--- --- 주의 [USI 5B 1430] 이상 하 다. 원래 일련의 mac 주소 앞 에 USI 자모 가 되 었 는데 나 는 그곳 이 잘못 되 었 다 고 생각한다.조사해 보 니 이런 네트워크 카드 칩 은 USI 회사 의 제품 이 어야 한 다 는 것 을 알 게 되 었 다. 즉, 모든 생 성 업 체 는 특정한 주소 세그먼트 로 표 시 될 것 이다.구체 적 으로 MAC 주 소 는 어떤 업 체 에 배분 되 는 지 IEEE Standards Association 의 조회 사이트 에서 조회 하여 알 수 있 습 니 다.http://standards.ieee.org/regauth/oui/index.shtml
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.