Share via


PFN_WSK_GET_NAME_INFO 콜백 함수(wsk.h)

WskGetNameInfo 함수는 전송 주소에서 호스트 이름으로 프로토콜 독립적 변환을 제공합니다.

구문

PFN_WSK_GET_NAME_INFO PfnWskGetNameInfo;

NTSTATUS PfnWskGetNameInfo(
  [in]            PWSK_CLIENT Client,
  [in]            PSOCKADDR SockAddr,
  [in]            ULONG SockAddrLength,
  [out, optional] PUNICODE_STRING NodeName,
  [out, optional] PUNICODE_STRING ServiceName,
  [in]            ULONG Flags,
  [in, optional]  PEPROCESS OwningProcess,
  [in, optional]  PETHREAD OwningThread,
  [in, out]       PIRP Irp
)
{...}

매개 변수

[in] Client

[in] 의 WskProviderNpi 매개 변수를 통해 반환된 WSK_CLIENT 구조체에 대한 포인터입니다. WskCaptureProviderNPI 함수입니다.

[in] SockAddr

[in] 소켓의 IP 주소 및 포트 번호를 포함하는 SOCKADDR 구조체에 대한 포인터입니다.

[in] SockAddrLength

[in] SockAddr 매개 변수가 가리키는 버퍼의 길이(바이트)를 지정합니다. SockAddrLength 값은 SOCKADDR_STORAGE 구조체의 크기를 초과해서는 안 됩니다.

[out, optional] NodeName

[out] 호스트(노드) 이름을 나타내는 유니코드 문자열을 포함하는 UNICODE_STRING 구조체에 대한 선택적 포인터입니다. 성공하면 유니코드 호스트 이름은 기본적으로 FQDN(정규화된 도메인 이름)으로 작성됩니다. 호출자는 종료 NULL 문자를 포함하는 유니코드 호스트 이름을 보유할 수 있을 만큼 큰 UNICODE_STRING 버퍼를 제공해야 합니다. NodeBuffer 매개 변수가 NULL인 경우 호출자는 호스트 이름 문자열을 수신하지 않습니다. NodeBufferServiceBuffer 는 모두 NULL이 아니어야 합니다.

[out, optional] ServiceName

[out] 포트 번호와 연결된 서비스 이름을 나타내는 유니코드 문자열을 포함하는 UNICODE_STRING 구조체에 대한 선택적 포인터입니다. 호출자는 종료 NULL 문자를 포함하는 유니코드 서비스 이름을 보유할 수 있을 만큼 큰 UNICODE_STRING 버퍼를 제공해야 합니다. NodeBuffer 매개 변수가 NULL인 경우 호출자는 서비스 이름 문자열을 수신하지 않습니다. NodeBufferServiceBuffer 는 모두 NULL이 아니어야 합니다.

[in] Flags

[in] 이 함수의 처리를 사용자 지정하는 데 사용되는 ULONG 값입니다.

사용할 수 있는 플래그는 다음과 같습니다.

NI_DGRAM

서비스가 데이터그램 서비스임을 나타냅니다. 이 플래그는 UDP 및 TCP 서비스에 대해 서로 다른 포트 번호를 제공하는 몇 가지 서비스에 필요합니다.

NI_NAMEREQD

DNS에서 확인할 수 없는 호스트 이름에서 오류가 발생했음을 나타냅니다.

NI_NOFQDN

노드 이름 매개 변수 에 반환된 RDN(Relative Distinguished Name)만 있는 로컬 호스트가 생성됩니다.

NI_NUMERICHOST

함수가 역방향 DNS 조회인 이름 대신 호스트 이름의 숫자 형식을 반환한다는 것을 나타냅니다. 호스트 이름을 DNS에서 확인할 수 없는 경우에도 호스트 이름의 숫자 형식이 반환됩니다.

NI_NUMERICSERV

함수가 이름 대신 서비스의 포트 번호를 반환한다는 것을 나타냅니다. 또한 IP 주소(예: 127.0.0.2)에 대한 호스트 이름을 찾을 수 없는 경우 호스트 이름이 IP 주소로 반환됩니다.

[in, optional] OwningProcess

[in] 함수가 보안 컨텍스트를 검색하는 프로세스에 대한 선택적 포인터입니다. 이 보안 컨텍스트는 함수가 이름 확인 요청을 처리하는 사용자 계정 컨텍스트를 나타냅니다.

이 매개 변수가 NULL인 경우 함수는 최소한의 권한으로 미리 정의된 로컬 계정의 컨텍스트에서 이름 확인 요청을 처리합니다.

이 매개 변수가 NULL 이 아니고 호출 스레드에 가장 토큰이 적용되는 경우 이 함수는 실패하고 STATUS_INVALID_PARAMETER 반환합니다.

[in, optional] OwningThread

[in] 함수가 보안 컨텍스트를 검색하는 스레드에 대한 선택적 포인터입니다. OwningProcessNULL이 아닌 경우에만 이 매개 변수는 NULL이 아닐 수 있습니다. 그렇지 않으면 이 함수가 실패하고 STATUS_INVALID_PARAMETER 반환합니다.

이 매개 변수가 NULL 이 아니고 호출 스레드에 가장 토큰이 적용되는 경우 이 함수는 실패하고 STATUS_INVALID_PARAMETER 반환합니다.

[in, out] Irp

[in/out] 요청을 비동기적으로 완료하는 데 사용할 IRP(I/O 요청 패킷)에 대한 포인터입니다. 요청이 완료되면 Irp ->Iostatus.Information는 반환된 상태 코드를 보유합니다.

반환 값

WskGetNameInfo 는 다음 NTSTATUS 코드 중 하나를 반환합니다.

반환 코드 설명
STATUS_INVALID_PARAMETER
잘못된 매개 변수가 지정되었습니다.
STATUS_NO_MATCH
호스트 이름을 확인할 수 없습니다.
STATUS_SUCCESS
함수가 성공적으로 완료되었습니다. WSK 애플리케이션이 의 IRP에 대한 포인터를 지정한 경우 Irp 매개 변수인 IRP는 성공 상태 완료됩니다.
STATUS_PENDING
WSK 하위 시스템이 함수를 즉시 완료할 수 없습니다. WSK 하위 시스템은 제어 작업을 완료한 후 IRP를 완료합니다. 컨트롤 작업의 상태 IRP의 IoStatus.Status 필드에 반환됩니다.
기타 상태 코드
오류가 발생했습니다. IRP는 실패 상태 완료됩니다.

설명

OwningProcess 매개 변수가 가리키는 프로세스 또는 OwningThread 프로세스가 가리키는 스레드는 이 함수의 보안 컨텍스트를 나타냅니다. 보안 컨텍스트로 표시되는 사용자 계정은 함수의 이름 확인 요청에 대한 컨텍스트를 나타냅니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 7 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 wsk.h(Wsk.h 포함)
IRQL PASSIVE_LEVEL

추가 정보

SOCKADDR

SOCKADDR_STORAGE

UNICODE_STRING

WSK_CLIENT

WskCaptureProviderNPI

WskGetAddressInfo