NDIS_PM_WOL_PATTERN 구조체(ntddndis.h)

NDIS_PM_WOL_PATTERN 구조체는 WOL(Wake-On-LAN) 패턴을 정의합니다.

구문

typedef struct _NDIS_PM_WOL_PATTERN {
  NDIS_OBJECT_HEADER     Header;
  ULONG                  Flags;
  ULONG                  Priority;
  NDIS_PM_WOL_PACKET     WoLPacketType;
  NDIS_PM_COUNTED_STRING FriendlyName;
  ULONG                  PatternId;
  ULONG                  NextWoLPatternOffset;
  union {
    struct {
      ULONG  Flags;
      UCHAR  IPv4SourceAddress[4];
      UCHAR  IPv4DestAddress[4];
      USHORT TCPSourcePortNumber;
      USHORT TCPDestPortNumber;
    } IPv4TcpSynParameters;
    struct {
      ULONG  Flags;
      UCHAR  IPv6SourceAddress[16];
      UCHAR  IPv6DestAddress[16];
      USHORT TCPSourcePortNumber;
      USHORT TCPDestPortNumber;
    } IPv6TcpSynParameters;
    struct {
      ULONG Flags;
    } EapolRequestIdMessageParameters;
    struct {
      ULONG Flags;
      ULONG MaskOffset;
      ULONG MaskSize;
      ULONG PatternOffset;
      ULONG PatternSize;
    } WoLBitMapPattern;
  } WoLPattern;
  _WOL_PATTERN           _WOL_PATTERN;
} NDIS_PM_WOL_PATTERN, *PNDIS_PM_WOL_PATTERN;

멤버

Header

NDIS_PM_WOL_PATTERN 구조체의 형식, 수정 버전 및 크기입니다. 이 멤버는 NDIS_OBJECT_HEADER 구조체로 형식이 지정됩니다.

미니포트 드라이버는 헤더Type 멤버를 NDIS_OBJECT_TYPE_DEFAULT 설정해야 합니다. NDIS_PM_WOL_PATTERN 구조체의 버전을 지정하려면 드라이버가 HeaderRevision 멤버를 다음 값으로 설정해야 합니다.

NDIS_PM_WOL_PATTERN_REVISION_2

NDIS 6.30에 대한 NDIS_PM_WOL_PACKET 열거형을 수정했습니다.

Size 멤버를 NDIS_SIZEOF_NDIS_PM_WOL_PATTERN_REVISION_2 설정합니다.

NDIS_PM_WOL_PATTERN_REVISION_1

NDIS 6.20의 원래 버전입니다.

Size 멤버를 NDIS_SIZEOF_NDIS_PM_WOL_PATTERN_REVISION_1 설정합니다.

Flags

플래그의 비트 OR을 포함하는 ULONG 값입니다. 이 멤버는 NDIS용으로 예약되어 있습니다.

Priority

WOL 패턴의 우선 순위를 포함하는 ULONG 값입니다. 더 많은 WOL 패턴에 사용할 수 있는 리소스가 없을 때 지나치게 높은 우선 순위의 WOL 패턴을 추가하는 경우 NDIS는 리소스를 해제하기 위해 우선 순위가 낮은 WOL 패턴을 제거할 수 있습니다. 미니포트 드라이버는 이 멤버를 무시해야 합니다. 프로토콜 드라이버는 미리 정의된 범위 내에 있는 우선 순위를 지정할 수 있습니다. 다음 값이 미리 정의되어 있습니다.

NDIS_PM_WOL_PRIORITY_LOWEST

가장 낮은 우선 순위 WOL 패턴을 지정합니다.

NDIS_PM_WOL_PRIORITY_NORMAL

일반 우선 순위 WOL 패턴을 지정합니다.

NDIS_PM_WOL_PRIORITY_HIGHEST

가장 높은 우선 순위의 WOL 패턴을 지정합니다.

WoLPacketType

WOL 패킷의 형식을 지정하는 NDIS_PM_WOL_PACKET 열거형 값입니다.

FriendlyName

WOL 패킷에 대한 사용자가 읽을 수 있는 설명을 포함하는 NDIS_PM_COUNTED_STRING 구조체입니다.

PatternId

WOL 패턴을 식별하는 NDIS 제공 값을 포함하는 ULONG 값입니다. NDIS가 OID_PM_ADD_WOL_PATTERN OID 요청을 기본 NDIS 드라이버로 보내거나 지나치게 많은 드라이버에 요청을 완료하기 전에 NDIS는 PatternId 를 네트워크 어댑터의 WOL 패턴 중에서 고유한 값으로 설정합니다.

NextWoLPatternOffset

오프셋(바이트)을 포함하는 ULONG 값입니다. 목록의 각 NDIS_PM_WOL_PATTERN 구조체의 NextWoLPatternOffset 멤버는 목록에서 다음 NDIS_PM_WOL_PATTERN 구조체의 오프셋(OID 요청 InformationBuffer의 시작부터)으로 설정됩니다. NextWoLPatternOffset이 0이면 현재 구조체가 목록의 마지막 구조체입니다.

WoLPattern

다음 멤버 구조를 포함하는 공용 구조체입니다.

WoLPattern.IPv4TcpSynParameters

IPv4 TCP SYN 정보를 포함하는 구조체입니다. 이 구조체에는 다음 멤버가 포함됩니다.

WoLPattern.IPv4TcpSynParameters.Flags

플래그의 비트 OR을 포함하는 ULONG 값입니다. 이 멤버는 NDIS용으로 예약되어 있습니다.

WoLPattern.IPv4TcpSynParameters.IPv4SourceAddress[4]

TCP SYN 패킷의 IPv4 원본 주소입니다.

WoLPattern.IPv4TcpSynParameters.IPv4DestAddress[4]

TCP SYN 패킷의 IPv4 대상 주소입니다.

WoLPattern.IPv4TcpSynParameters.TCPSourcePortNumber

TCP SYN 패킷의 TCP 원본 포트 번호입니다.

WoLPattern.IPv4TcpSynParameters.TCPDestPortNumber

TCP SYN 패킷의 TCP 대상 포트 번호입니다.

WoLPattern.IPv6TcpSynParameters

IPv6 TCP SYN 정보를 포함하는 구조체입니다. 이 구조체에는 다음 멤버가 포함됩니다.

WoLPattern.IPv6TcpSynParameters.Flags

플래그의 비트 OR을 포함하는 ULONG 값입니다. 이 멤버는 NDIS용으로 예약되어 있습니다.

WoLPattern.IPv6TcpSynParameters.IPv6SourceAddress[16]

TCP SYN 패킷의 IPv6 원본 주소입니다.

WoLPattern.IPv6TcpSynParameters.IPv6DestAddress[16]

TCP SYN 패킷의 IPv6 대상 주소입니다.

WoLPattern.IPv6TcpSynParameters.TCPSourcePortNumber

TCP SYN 패킷의 TCP 원본 포트입니다.

WoLPattern.IPv6TcpSynParameters.TCPDestPortNumber

TCP SYN 패킷의 TCP 대상 포트입니다.

WoLPattern.EapolRequestIdMessageParameters

802.1X EAPOL 요청 ID 메시지 매개 변수를 포함하는 구조체입니다. 이 구조체에는 다음 멤버가 포함됩니다.

WoLPattern.EapolRequestIdMessageParameters.Flags

플래그의 비트 OR을 포함하는 ULONG 값입니다. 이 멤버는 NDIS용으로 예약되어 있습니다.

WoLPattern.WoLBitMapPattern

WOL 비트맵 패턴을 지정하는 구조체입니다. 비트맵 패턴에 대한 자세한 내용은 설명 섹션을 참조하세요. 구조체에는 다음과 같은 멤버가 있습니다.

WoLPattern.WoLBitMapPattern.Flags

플래그의 비트 OR을 포함하는 ULONG 값입니다. 이 멤버는 NDIS용으로 예약되어 있습니다.

WoLPattern.WoLBitMapPattern.MaskOffset

NDIS_PM_WOL_PATTERN 구조체의 시작 부분에서 마스크 버퍼에 대한 오프셋(바이트)입니다.

마스크는 들어오는 패킷의 바이트를 비트맵 패턴과 일치시킬 바이트를 지정합니다. 비트 마스크의 각 비트는 패턴의 바이트에 해당합니다. 비트가 0이면 들어오는 패킷의 해당 바이트가 패턴과 일치해서는 안 됩니다. 비트가 1인 경우 네트워크 어댑터는 바이트를 들어오는 패킷과 패턴에 지정된 바이트와 비교합니다.

WoLPattern.WoLBitMapPattern.MaskSize

마스크의 크기(바이트)입니다.

WoLPattern.WoLBitMapPattern.PatternOffset

NDIS_PM_WOL_PATTERN 구조체의 시작 부분에서 패턴 버퍼에 대한 오프셋(바이트)입니다.

WoLPattern.WoLBitMapPattern.PatternSize

패턴의 크기(바이트)입니다.

_WOL_PATTERN

설명

NDIS_PM_WOL_PATTERN 구조는 OID_PM_ADD_WOL_PATTERNOID_PM_WOL_PATTERN_LIST OID 요청에 사용됩니다.

상위 계층 드라이버는 WoLBitMapPattern 멤버를 사용하여 일반 WOL 패턴을 지정할 수 있습니다. 비트맵 패턴은 바이트 시퀀스 및 마스크 비트맵으로 지정됩니다. 마스크의 각 비트는 패턴의 바이트에 해당하며 들어오는 패킷의 해당 바이트가 패턴의 해당 바이트와 일치해야 하는지 여부를 지정합니다. 네트워크 어댑터와 비교된 모든 바이트가 일치하는 경우 패킷은 일치하며 네트워크 어댑터는 절전 모드 해제 이벤트를 생성해야 합니다.

상층 드라이버는 IPv4TcpSynParameters 멤버 구조에서 0으로 채워지거나 지정되지 않은 IPv4 주소 및 TCP 포트 값을 지정할 수 있습니다. NDIS_PM_WOL_IPV4_DEST_ADDR_WILDCARD_ENABLED 플래그가 NDIS_PM_PARAMETERS EnabledWoLPacketPatterns 멤버에 설정된 경우 네트워크 어댑터는 지정되지 않은 주소 또는 포트 값을 사용하여 IPv4 TCP SYN 패킷의 원본 또는 대상 IPv4 주소 또는 TCP 포트 값과 일치해야 합니다.

마찬가지로 상층 드라이버는 IPv6TcpSynParameters 멤버 구조에서 지정되지 않은 IPv6 주소 및 TCP 포트 값을 지정할 수 있습니다. NDIS_PM_WOL_IPV6_DEST_ADDR_WILDCARD_ENABLED 플래그가 NDIS_PM_PARAMETERS EnabledWoLPacketPatterns 멤버에 설정된 경우 네트워크 어댑터는 IPv4 TCP SYN 패킷의 원본 또는 대상 IPv6 주소 또는 TCP 포트 값과 일치하도록 지정되지 않은 주소 또는 포트 값을 사용해야 합니다.

상위 계층 드라이버는 OID_PM_PARAMETERS OID의 집합 요청을 실행하여 NDIS_PM_WOL_IPV4_DEST_ADDR_WILDCARD_ENABLED 및 NDIS_PM_WOL_IPV6_DEST_ADDR_WILDCARD_ENABLED 플래그를 설정합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 NDIS 6.20 이상에서 지원됩니다.
머리글 ntddndis.h(Ntddndis.h 포함)

추가 정보

NDIS_OBJECT_HEADER

NDIS_PM_COUNTED_STRING

NDIS_PM_WOL_PACKET

OID_PM_ADD_WOL_PATTERN

OID_PM_WOL_PATTERN_LIST