다음을 통해 공유


WlanSetPsdIEDataList 함수(wlanapi.h)

WlanSetPsdIeDataList 함수는 PSD(근접 서비스 검색) IE(정보 요소) 데이터 목록을 설정합니다.

구문

DWORD WlanSetPsdIEDataList(
  [in] HANDLE                    hClientHandle,
  [in] LPCWSTR                   strFormat,
  [in] const PWLAN_RAW_DATA_LIST pPsdIEDataList,
       PVOID                     pReserved
);

매개 변수

[in] hClientHandle

WlanOpenHandle 함수에 대한 이전 호출에서 얻은 클라이언트의 세션 핸들입니다.

[in] strFormat

pPsdIEDataList 매개 변수에 전달된 PSD IE 데이터 목록의 PSD IE 형식입니다. 검색에 사용되는 프로토콜의 네임스페이스를 지정하는 NULL로 종료된 URI 문자열입니다.

[in] pPsdIEDataList

설정할 PSD IE 데이터 목록을 포함하는 WLAN_RAW_DATA_LIST 구조체에 대한 포인터입니다.

pReserved

다음에 사용하도록 예약됩니다. NULL로 설정해야 합니다.

반환 값

함수가 성공하면 반환 값이 ERROR_SUCCESS.

함수가 실패하면 반환 값은 다음 반환 코드 중 하나일 수 있습니다.

반환 코드 설명
ERROR_INVALID_PARAMETER
매개 변수가 잘못되었습니다. hClientHandleNULL이거나 유효하지 않거나 pReservedNULL이 아닌 경우 이 오류가 반환됩니다.
ERROR_INVALID_HANDLE
핸들 테이블에 hClientHandle 핸들을 찾을 수 없습니다.
ERROR_NOT_SUPPORTED
이 함수는 지원되지 않는 플랫폼에서 호출되었습니다. 이 값은 SP3이 있는 Windows XP 또는 SP2 클라이언트가 있는 Windows XP용 무선 LAN API에서 함수를 호출한 경우 반환됩니다.
RPC_STATUS
다양한 오류 코드.

설명

근접 서비스 검색 프로토콜은 클라이언트가 무선 범위로 정의된 물리적 근접에서 서비스를 검색할 수 있도록 하는 Microsoft 전용 프로토콜입니다. 근접 서비스 검색 프로토콜의 목적은 비콘 프레임의 일부로 서비스 광고와 같은 서비스 검색 정보를 전달하는 것입니다. 임시 모드에서 작동하는 액세스 지점(AP) 및 스테이션(STA)은 주기적으로 비콘 프레임을 브로드캐스트합니다. 비콘 프레임에는 디바이스가 제공하는 서비스와 관련된 검색 정보를 전달하는 단일 또는 여러 독점 정보 요소가 포함될 수 있습니다.

PSD IE는 수동 검색을 위해 상위 수준의 검색 프로토콜에서 제공하는 압축 정보를 전송하는 데 사용됩니다. 검색에 사용되는 이러한 상위 수준 프로토콜 중 하나는 WS-Discovery 프로토콜입니다. 모든 프로토콜을 검색에 사용할 수 있습니다.

무선 LAN 서비스가 설치된 Windows Vista 및 Windows Server 2008은 임시 클라이언트, 임시 서비스 및 인프라 클라이언트에 대한 수동 검색을 지원합니다. 즉, 임시 서비스는 하나 이상의 비콘에서 PSD IE를 전송하여 사용 가능한 리소스 또는 서비스를 보급할 수 있습니다. 이 비콘이 임시 또는 인프라 클라이언트에서 수신된다는 보장은 없습니다.

무선 LAN 서비스가 설치된 Windows 7 및 Windows Server 2008 R2는 Windows Vista와 동일한 방식으로 임시 클라이언트, 임시 서비스 및 인프라 클라이언트에 대한 수동 검색을 지원합니다. 또한 PSD IE는 AP(소프트웨어 기반 무선 액세스 지점)인 무선 호스트 네트워크에 대해서도 지원됩니다. 무선 호스팅 네트워크를 실행할 로컬 컴퓨터의 애플리케이션은 무선 호스트 네트워크를 시작하기 전에 WlanSetPsdIeDataList 함수를 사용하여 PSD IE를 설정할 수 있습니다. 설정되면 무선 호스트 네트워크가 시작된 후 PSD IE가 비콘 및 프로브 응답에 포함됩니다.

비콘을 보내거나 받는 각 애플리케이션은 자체 PSD IE 데이터 목록을 유지 관리합니다. pPsdIEDataList 매개 변수는 애플리케이션에서 생성된 PSD ES 목록을 가리킵니다. 각 PSD IE의 형식은 다음과 같습니다.

필드 설명 및 값
요소 ID(1 바이트) 221
길이(1 바이트) 데이터 필드의 길이(바이트)와 8입니다.
OUI(3바이트) OUI(조직 고유 식별자)에는 00-50-F2 값이 포함되어야 합니다. 이 공용 OUI는 Microsoft에 등록됩니다.
OUI 형식(1 바이트) 근접 서비스 검색 프로토콜의 경우 OUI 형식에 값이 6이어야 합니다.
형식 식별자 해시(4바이트) strFormat 매개 변수에서 계산된 HMAC의 비트 31-0입니다.
데이터(변수) 검색을 위한 사용자 정의 데이터를 포함합니다. 이 필드는 길이가 240바이트이면 안됩니다.
 

요소 ID 221은 IEEE 802.11 표준에 정의된 공급업체별 정보 요소를 지정합니다. OUI(조직 고유 식별자)에는 OUI가 IEEE 802.11 주소 필드에 전송되는 순서와 동일한 순서로 정보 요소의 콘텐츠를 정의한 공급업체의 3 바이트 IEEE 할당 OUI가 포함되어 있습니다. 요소 ID, 길이, OUI 및 OUI 형식 필드는 자동 구성 서비스에 의해 제어되고 애플리케이션은 나머지 필드를 제어합니다.

형식 식별자 해시 필드는 PSD IE에 전달되는 정보의 형식을 설명합니다. 형식 식별자의 중앙 관리를 회피하면서 고유성을 보장하기 위해 RFC 3986에 지정된 URI(Uniform Resource Identifier) 형식의 문자열을 사용하여 형식을 구분합니다. 그러나 전송은 효율적이어야 하고 정보 요소의 공간이 제한되므로 문자열은 실제로 전송되지 않고 대신 해당 해시가 전송됩니다. 비콘의 수신 쪽인 클라이언트에서 해시는 알려진 형식 식별자 집합과 일치합니다.

형식 식별자 해시 필드는 비트 0...으로 표시됩니다. strFormat 매개 변수에 지정된 형식 식별자 문자열에 대한 해시 기반 HMAC(메시지 인증 코드) 중 31개입니다. HMAC는 PSD IE의 데이터 필드 형식을 지정하는 데 사용됩니다. HMAC를 계산하는 데 사용되는 수식은 RFC 2104에 설명되어 있습니다. HMAC 계산에 대한 샘플 코드는 RFC 4634에 지정된 대로 입니다. HMAC를 계산할 때 해시 함수에 SHA-256을 사용합니다. 사용되는 키는 "null" 키(인증 키에 대한 NULL 포인터, RFC 4634의 소스 코드당 길이가 0인 인증 키)입니다. little-endian 형식으로 유니코드 UTF-16으로 인코딩된 입력 텍스트로 strFormat 매개 변수 값(공백은 포함하지만 NULL 종료 문자는 제외)을 사용합니다.

예를 들어 strFormat 매개 변수가 http://schemas.xmlsoaps.org/ws/2004/10/discovery인 경우 해당 HMAC의 처음 4 옥텟은 입니다 0xF8 0xCB 0x35 0x15.

strFormat 매개 변수가 http://schemas.microsoft.com/networking/discoveryformat/v2이면 해당 HMAC의 4개 옥텟은 입니다0xCF 0xF1 0x64 0x17.

네트워크를 통해 HMAC의 처음 4 옥텟을 보낼 때 첫 번째(가장 왼쪽) 옥텟을 먼저 보냅니다.

잘린 HMAC에 충돌이 있을 수 있습니다. 즉, 지정된 HMAC 비트에서 PSD IE의 페이로드에 해당하는 검색 프로토콜을 고유하게 결정하는 것은 불가능할 수 있습니다. PSD IE를 수신하는 애플리케이션은 지정된 HMAC에서 사용되는 검색 프로토콜을 가장 잘 추측한 다음, 연결이 설정되면 상위 수준 검색 프로토콜을 다시 실행해야 합니다.

최대 5개의 PSD ES를 목록에 전달할 수 있습니다. 또한 PSD IE 목록의 총 길이(바이트)는 비콘의 길이에 대한 하드웨어 제한에 의해 제한될 수 있습니다.

애플리케이션은 WlanSetPsdIeDataList를 여러 번 호출할 수 있습니다. WlanSetPsdIeDataList가 동일한 strFormat을 사용하여 두 번 호출되면 첫 번째 함수 호출로 채워진 WLAN_RAW_DATA_LIST 내용이 두 번째 호출의 WLAN_RAW_DATA_LIST 페이로드에 의해 덮어씁니다. pPsdIEDataList 매개 변수를 NULL로 설정하여 WlanSetPsdIeDataList를 호출하면 strFormat과 연결된 PSD IE 목록이 지워집니다. pPsdIEDataListstrFormat 매개 변수를 모두 NULL로 설정하여 WlanSetPsdIeDataList를 호출하면 애플리케이션에서 설정한 모든 PSD IE 목록이 지워집니다.

무선 서비스는 다른 애플리케이션에서 설정한 PSD IE 데이터 목록을 처리하고 원시 IE 데이터 Blob을 생성합니다. 컴퓨터가 무선 어댑터에서 임시 네트워크를 만들거나 조인하면 네트워크와 연결된 PSD IE 데이터 Blob을 포함하는 비콘을 다른 컴퓨터로 보냅니다.

스테이션은 컴퓨터에서 비콘을 받은 후 WlanExtractPsdIEDataList 함수를 호출하여 PSD IE 데이터 목록을 가져올 수 있습니다.

요구 사항

   
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 wlanapi.h(Wlanapi.h 포함)
라이브러리 Wlanapi.lib
DLL Wlanapi.dll

참고 항목

무선 호스트 네트워크 정보

WLAN_RAW_DATA_LIST

WlanExtractPsdIEDataList

WlanScan