NDIS_PM_PROTOCOL_OFFLOAD 구조체(ntddndis.h)

NDIS_PM_PROTOCOL_OFFLOAD 구조는 네트워크 어댑터에 대한 저전력 프로토콜 오프로드에 대한 매개 변수를 지정합니다.

구문

typedef struct _NDIS_PM_PROTOCOL_OFFLOAD {
  NDIS_OBJECT_HEADER            Header;
  ULONG                         Flags;
  ULONG                         Priority;
  NDIS_PM_PROTOCOL_OFFLOAD_TYPE ProtocolOffloadType;
  NDIS_PM_COUNTED_STRING        FriendlyName;
  ULONG                         ProtocolOffloadId;
  ULONG                         NextProtocolOffloadOffset;
  union {
    struct {
      ULONG Flags;
      UCHAR RemoteIPv4Address[4];
      UCHAR HostIPv4Address[4];
      UCHAR MacAddress[6];
    } IPv4ARPParameters;
    struct {
      ULONG Flags;
      UCHAR RemoteIPv6Address[16];
      UCHAR SolicitedNodeIPv6Address[16];
      UCHAR MacAddress[6];
      UCHAR TargetIPv6Addresses[2][16];
    } IPv6NSParameters;
    struct {
      ULONG     Flags;
      UCHAR     KCK[DOT11_RSN_KCK_LENGTH];
      UCHAR     KEK[DOT11_RSN_KEK_LENGTH];
      ULONGLONG KeyReplayCounter;
    } Dot11RSNRekeyParameters;
    struct {
      ULONG     Flags;
      ULONGLONG KeyReplayCounter;
      ULONG     AuthAlgo;
      ULONG     KCKLength;
      ULONG     KEKLength;
      UCHAR     KCK[DOT11_RSN_MAX_CIPHER_KEY_LENGTH];
      UCHAR     KEK[DOT11_RSN_MAX_CIPHER_KEY_LENGTH];
    } Dot11RSNRekeyParametersV2;
  } ProtocolOffloadParameters;
  _PROTOCOL_OFFLOAD_PARAMETERS  _PROTOCOL_OFFLOAD_PARAMETERS;
} NDIS_PM_PROTOCOL_OFFLOAD, *PNDIS_PM_PROTOCOL_OFFLOAD;

멤버

Header

NDIS_PM_PROTOCOL_OFFLOAD 구조체의 NDIS_OBJECT_HEADER 구조체입니다. 드라이버는 Type 멤버를 NDIS_OBJECT_TYPE_DEFAULT 설정합니다.

NDIS_PM_PROTOCOL_OFFLOAD 구조체의 버전을 나타내려면 HeaderRevision 멤버를 다음 값 중 하나로 설정합니다.

NDIS_PM_PROTOCOL_OFFLOAD_REVISION_2

NDIS 6.84용 Dot11RSNRekeyParametersV2 구조체가 추가되었습니다.

Size 멤버를 NDIS_SIZEOF_NDIS_PM_PROTOCOL_OFFLOAD_REVISION_2 설정합니다.

NDIS_PM_PROTOCOL_OFFLOAD_REVISION_1

NDIS 6.20 이상에 대한 원래 버전입니다.

Size 멤버를 NDIS_SIZEOF_NDIS_PM_PROTOCOL_OFFLOAD_REVISION_1 설정합니다.

Flags

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

Priority

프로토콜 오프로드의 우선 순위를 포함하는 ULONG 값입니다. 더 많은 프로토콜 오프로드에 사용할 수 있는 리소스가 없을 때 오버리싱 드라이버가 더 높은 우선 순위 프로토콜 오프로드를 추가하는 경우 NDIS는 리소스를 해제하기 위해 우선 순위가 낮은 프로토콜 오프로드를 제거할 수 있습니다. 미니포트 드라이버는 이 멤버를 무시해야 합니다. 프로토콜 드라이버는 미리 정의된 범위 내의 모든 값을 제공할 수 있습니다. 미리 정의된 값은 다음과 같습니다.

NDIS_PM_PROTOCOL_OFFLOAD_PRIORITY_LOWEST

가장 낮은 우선 순위 프로토콜 오프로드를 지정합니다.

NDIS_PM_PROTOCOL_OFFLOAD_PRIORITY_NORMAL

일반 우선 순위 프로토콜 오프로드를 지정합니다.

NDIS_PM_PROTOCOL_OFFLOAD_PRIORITY_HIGHEST

우선 순위가 가장 높은 프로토콜 오프로드를 지정합니다.

ProtocolOffloadType

입니다. 프로토콜 오프로드의 형식을 포함하는 NDIS_PM_PROTOCOL_OFFLOAD_TYPE 값입니다.

FriendlyName

저전력 프로토콜 오프로드에 대한 사용자가 읽을 수 있는 설명을 포함하는 NDIS_PM_COUNTED_STRING 구조체입니다.

ProtocolOffloadId

오프로드된 프로토콜을 식별하는 NDIS 제공 값을 포함하는 ULONG 값입니다. NDIS가 OID_PM_ADD_PROTOCOL_OFFLOAD OID 요청을 기본 NDIS 드라이버로 보내거나 오버리싱 드라이버에 대한 요청을 완료하기 전에 NDIS는 ProtocolOffloadId 를 네트워크 어댑터의 프로토콜 오프로드 중 고유한 값으로 설정합니다.

NextProtocolOffloadOffset

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

ProtocolOffloadParameters

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

ProtocolOffloadParameters.IPv4ARPParameters

IPv4 ARP 매개 변수를 포함하는 구조체입니다. 이 구조체에는 다음 멤버가 포함됩니다.

ProtocolOffloadParameters.IPv4ARPParameters.Flags

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

ProtocolOffloadParameters.IPv4ARPParameters.RemoteIPv4Address[4]

선택적 IPv4 주소를 포함하는 UCHAR 배열입니다. 이 주소는 ARP 요청의 SPA(원본 프로토콜 주소) 필드를 나타냅니다.

들어오는 ARP 요청에 이 IPv4 주소와 일치하는 SPA 값이 있는 경우 네트워크 어댑터는 저전력 상태일 때 ARP 응답을 보냅니다. 이 멤버가 0이면 네트워크 어댑터가 원격 IPv4 주소의 ARP 요청에 응답해야 합니다.

ARP 프로토콜에 대한 자세한 내용은 RFC 826을 참조하세요.

ProtocolOffloadParameters.IPv4ARPParameters.HostIPv4Address[4]

IPv4 주소를 포함하는 UCHAR 배열입니다. ARP 응답을 보내면 네트워크 어댑터는 응답의 SPA 필드에 이 멤버를 사용합니다.

ProtocolOffloadParameters.IPv4ARPParameters.MacAddress[6]

MAC(미디어 액세스 제어) 주소를 포함하는 UCHAR 배열입니다. 네트워크 어댑터는 생성되는 ARP 응답 패킷의 SHA(원본 하드웨어 주소) 필드에 이 MAC 주소를 사용합니다.

참고 ARP 응답을 보낼 때 네트워크 어댑터는 항상 ARP 페이로드에서 이 MAC 주소를 사용해야 합니다. 그러나 네트워크 어댑터의 현재 MAC 주소를 MAC 헤더의 원본 주소로 사용해야 합니다.
 

ProtocolOffloadParameters.IPv6NSParameters

IPv6 NS(Neighbor Solicitation) 매개 변수를 포함하는 구조체입니다. 이 구조체에는 다음 멤버가 포함됩니다.

ProtocolOffloadParameters.IPv6NSParameters.Flags

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

ProtocolOffloadParameters.IPv6NSParameters.RemoteIPv6Address[16]

선택적 IPv6 주소를 포함하는 UCHAR 배열입니다. 이 주소는 NS 메시지의 IPv6 헤더에 있는 원본 주소 필드를 나타냅니다.

들어오는 NS 메시지에 이 IPv6 주소와 일치하는 원본 주소 값이 있는 경우 네트워크 어댑터는 전원이 부족할 때 NA(인접 알림) 메시지를 보냅니다. 이 멤버가 0이면 네트워크 어댑터가 원격 IPv6 주소의 NS 메시지에 응답해야 합니다.

IPv6 NS 및 NA 메시지에 대한 자세한 내용은 RFC 4861을 참조하세요.

ProtocolOffloadParameters.IPv6NSParameters.SolicitedNodeIPv6Address[16]

요청된 노드 IPv6 주소를 포함하는 UCHAR 배열입니다. 이 유형의 IPv6 주소에 대한 자세한 내용은 멀티캐스트 IPv6 주소를 참조하세요.

ProtocolOffloadParameters.IPv6NSParameters.MacAddress[6]

MAC 주소를 포함하는 UCHAR 배열입니다. NA 메시지를 보낼 때 네트워크 어댑터는 NA 메시지의 대상 TLLA(링크 계층 주소) 필드에 이 배열을 사용합니다.

참고 NA 메시지를 보낼 때 네트워크 어댑터는 항상 NA 메시지의 TLLA 필드에서 이 MAC 주소를 사용해야 합니다. 그러나 네트워크 어댑터의 현재 MAC 주소를 MAC 헤더의 원본 주소로 사용해야 합니다.
 

ProtocolOffloadParameters.IPv6NSParameters.TargetIPv6Addresses[2]

하나 또는 두 개의 IPv6 주소를 포함하는 UCHAR 배열입니다. 주소가 하나만 포함된 경우 해당 주소는 배열의 첫 번째 요소에 저장되고 두 번째 요소는 0으로 채워집니다.

미니포트 드라이버는 배열의 모든 주소를 사용해야 합니다.

이러한 주소는 NS 메시지의 대상 주소 필드를 나타냅니다. 이러한 주소 중 하나가 들어오는 NS 메시지의 대상 주소 필드와 일치하는 경우 네트워크 어댑터는 응답으로 NA 메시지를 보냅니다.

ProtocolOffloadParameters.Dot11RSNRekeyParameters

IEEE 802.11i RSN(강력한 보안 네트워크) 핸드셰이크 매개 변수를 포함하는 구조체입니다. 이 구조체에는 다음 멤버가 포함됩니다.

ProtocolOffloadParameters.Dot11RSNRekeyParameters.Flags

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

ProtocolOffloadParameters.Dot11RSNRekeyParameters.KCK[DOT11_RSN_KCK_LENGTH]

IEEE 802.11 KCK(키 확인 키)를 포함하는 UCHAR 배열입니다.

ProtocolOffloadParameters.Dot11RSNRekeyParameters.KEK[DOT11_RSN_KEK_LENGTH]

IEEE 802.11 KEK(키 암호화 키)를 포함하는 UCHAR 배열입니다.

ProtocolOffloadParameters.Dot11RSNRekeyParameters.KeyReplayCounter

재생 카운터를 포함하는 ULONGLONG 값입니다.

ProtocolOffloadParameters.Dot11RSNRekeyParametersV2

V2 IEEE 802.11i RSN(강력한 보안 네트워크) 핸드셰이크 매개 변수를 포함하는 구조체입니다. NDIS 6.84 이상에서 사용할 수 있습니다. 이 구조체에는 다음 멤버가 포함됩니다.

ProtocolOffloadParameters.Dot11RSNRekeyParametersV2.Flags

ProtocolOffloadParameters.Dot11RSNRekeyParametersV2.KeyReplayCounter

ProtocolOffloadParameters.Dot11RSNRekeyParametersV2.AuthAlgo

ProtocolOffloadParameters.Dot11RSNRekeyParametersV2.KCKLength

ProtocolOffloadParameters.Dot11RSNRekeyParametersV2.KEKLength

ProtocolOffloadParameters.Dot11RSNRekeyParametersV2.KCK[DOT11_RSN_MAX_CIPHER_KEY_LENGTH]

ProtocolOffloadParameters.Dot11RSNRekeyParametersV2.KEK[DOT11_RSN_MAX_CIPHER_KEY_LENGTH]

_PROTOCOL_OFFLOAD_PARAMETERS

설명

NDIS_PM_PROTOCOL_OFFLOAD 구조체는 OID_PM_ADD_PROTOCOL_OFFLOAD 및 에서 사용됩니다. OID_PM_PROTOCOL_OFFLOAD_LIST Oid.

요구 사항

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

추가 정보

NDIS_OBJECT_HEADER

NDIS_PM_COUNTED_STRING

NDIS_PM_PROTOCOL_OFFLOAD_TYPE

OID_PM_ADD_PROTOCOL_OFFLOAD

OID_PM_PROTOCOL_OFFLOAD_LIST