OID_PM_ADD_PROTOCOL_OFFLOAD

집합으로 NDIS 프로토콜 드라이버는 OID_PM_ADD_PROTOCOL_OFFLOAD OID를 사용하여 네트워크 어댑터에 전원 관리용 프로토콜 오프로드를 추가합니다. NDIS_OID_REQUEST 구조체의 InformationBuffer 멤버에는 NDIS_PM_PROTOCOL_OFFLOAD 구조체에 대한 포인터가 포함되어 있습니다.

설명

NDIS 6.20 이상 프로토콜 드라이버는 OID_PM_ADD_PROTOCOL_OFFLOAD OID를 사용하여 네트워크 어댑터에 전원 관리를 위한 프로토콜 오프로드를 추가합니다. 요청이 성공하면 네트워크 어댑터가 저전력 상태일 때 네트워크 어댑터가 오프로드된 프로토콜에 필요한 응답 패킷을 생성하고 전송해야 합니다.

프로토콜 드라이버는 프로토콜을 기본 네트워크 어댑터에 성공적으로 바인딩한 후 프로토콜을 오프로드하는 데 필요한 데이터(예: 인터페이스의 IP 주소)가 있는 즉시 프로토콜을 오프로드할 수 있습니다. 프로토콜 드라이버는 이전에 추가된 WOL 패턴 또는 오프로드된 프로토콜의 거부와 같은 다른 전원 관리 이벤트 알림에 대한 응답으로 프로토콜을 오프로드할 수도 있습니다.

동일한 미니포트 어댑터에 바인딩된 NDIS 및 기타 프로토콜 드라이버의 경합 상태를 방지하기 위해 NDIS가 네트워크 어댑터를 저전력 상태로 설정하기 시작하면 다른 프로토콜을 해당 네트워크 어댑터로 오프로드하려는 시도가 실패합니다. 예를 들어 NDIS 프로토콜 드라이버가 해당 네트워크 어댑터에 대한 NetEventSetPower 이벤트 알림을 처리하는 컨텍스트에서 프로토콜을 오프로드하려고 하면 NDIS가 요청에 실패합니다.

NDIS가 이 OID 요청을 기본 NDIS 드라이버로 보내거나 오버라이징 드라이버에 요청을 완료하기 전에 NDIS_PM_PROTOCOL_OFFLOAD 구조체의 ULONG ProtocolOffloadId 멤버를 고유한 값으로 설정합니다. 프로토콜 드라이버 및 NDIS는 OID_PM_REMOVE_PROTOCOL_OFFLOAD OID 요청과 함께 이 프로토콜 오프로드 식별자를 사용하여 기본 네트워크 어댑터에서 프로토콜 오프로드를 제거합니다.

참고 프로토콜 오프로드 식별자는 네트워크 어댑터에 설정된 각 프로토콜 오프로드에 대한 고유한 값입니다. 그러나 프로토콜 오프로드 식별자는 모든 네트워크 어댑터에서 전역적으로 고유하지 않습니다.

NDIS 또는 기본 네트워크 어댑터가 오프로드를 거부하는 경우 NDIS_STATUS_PM_OFFLOAD_REJECTED 상태 표시가 생성됩니다. 이 문제는 OID에 대한 NDIS_STATUS_SUCCESS 반환한 후에 발생할 수 있습니다. NDIS_STATUS_INDICATION 구조의 StatusBuffer 멤버에는 거부된 프로토콜 오프로드의 ULONG 프로토콜 오프로드 식별자가 포함됩니다.

네이티브 802.11 무선 LAN 미니포트 드라이버가 이 OID를 사용하는 방법에 대한 자세한 내용은 저전력 프로토콜 오프로드 추가 및 삭제를 참조하세요.

미니포트 드라이버는 요청에 대해 다음 상태 코드 중 하나를 반환합니다.

NDIS_STATUS_SUCCESS
요청된 프로토콜 오프로드가 성공적으로 추가되었습니다. NDIS_PM_PROTOCOL_OFFLOAD 구조체의 ProtocolOffloadId 멤버에는 프로토콜 오프로드 식별자가 포함되어 있습니다.

NDIS_STATUS_PENDING
요청이 완료될 때까지 보류 중입니다. NDIS는 요청이 완료된 후 최종 상태 코드 및 결과를 호출자의 OID 요청 완료 처리기에 전달합니다.

NDIS_STATUS_PM_PROTOCOL_OFFLOAD_LIST_FULL
프로토콜 오프로드 목록이 가득 찼고 네트워크 어댑터가 다른 프로토콜 오프로드를 추가할 수 없기 때문에 요청이 실패했습니다.

NDIS_STATUS_RESOURCES
NDIS 또는 기본 네트워크 어댑터는 리소스 부족으로 인해 새 프로토콜 오프로드를 추가할 수 없습니다.

NDIS_STATUS_INVALID_PARAMETER
NDIS_PM_PROTOCOL_OFFLOAD 구조에서 하나 이상의 매개 변수가 잘못되었습니다.

NDIS_STATUS_BUFFER_TOO_SHORT
정보 버퍼가 너무 짧습니다. NDIS는 데이터를 설정합니다 . SET_INFORMATION. 필요한 최소 버퍼 크기에 대한 NDIS_OID_REQUEST 구조체의 BytesNeeded 멤버입니다.

NDIS_STATUS_NOT_SUPPORTED
네트워크 어댑터는 요청된 프로토콜 오프로드를 지원하지 않습니다.

NDIS_STATUS_FAILURE
이전 이유 이외의 이유로 요청이 실패했습니다.

요구 사항

Version

NDIS 6.20 이상에서 지원됩니다. 미니포트 드라이버의 경우 필수입니다.

헤더

Ntddndis.h(Ndis.h 포함)

추가 정보

NDIS_OID_REQUEST

NDIS_PM_PROTOCOL_OFFLOAD

NDIS_STATUS_INDICATION

NDIS_STATUS_PM_OFFLOAD_REJECTED

OID_PM_REMOVE_PROTOCOL_OFFLOAD

저전력 프로토콜 오프로드 추가 및 삭제