Share via


NPAddConnection3 함수(npapi.h)

NPAddConnection3 함수는 로컬 디바이스를 네트워크 리소스에 연결합니다. NPAddConnection과 동일한 작업을 수행하지만 결과 대화 상자를 소유해야 하는 창에 대한 핸들을 지정하고 연결을 설정하는 방법을 지정할 수 있습니다.

구문

DWORD NPAddConnection3(
  [in] HWND           hwndOwner,
  [in] LPNETRESOURCEW lpNetResource,
  [in] LPWSTR         lpPassword,
  [in] LPWSTR         lpUserName,
  [in] DWORD          dwFlags
);

매개 변수

[in] hwndOwner

메시지 또는 대화 상자를 소유해야 하는 창에 대한 핸들입니다. 이 핸들은 dwFlags에서 CONNECT_INTERACTIVE 설정된 경우에만 유효하며, 핸들은 인증에 필요한 대화 상자를 생성하는 데만 사용해야 합니다.

[in] lpNetResource

연결할 네트워크 리소스를 지정하는 NETRESOURCE 구조체에 대한 포인터입니다. 연결할 때 다음 필드를 설정해야 합니다. 다른 소스는 무시됩니다.

의미
lpRemoteName
연결할 네트워크 리소스를 지정합니다.
lpLocalName
리디렉션할 로컬 디바이스의 이름(예: "F:" 또는 "LPT1")을 지정합니다. 이 이름은 대/소문자를 구분하지 않는 것으로 처리되며 빈 문자열 또는 NULL 포인터일 수 있습니다. 문자열이 비어 있거나 NULL인 경우 함수는 리디렉션하지 않고 네트워크 리소스에 연결합니다.
dwType
연결할 리소스의 유형을 지정합니다. RESOURCETYPE_DISK, RESOURCETYPE_PRINT 또는 RESOURCETYPE_ANY 수 있습니다. 호출자가 신경 쓰지 않거나 모르는 경우 RESOURCETYPE_ANY 값이 사용됩니다.

[in] lpPassword

연결에 사용할 암호에 대한 포인터로, 일반적으로 lpUserName과 연결된 암호입니다. 함수가 기본 암호를 사용하도록 NULL 값을 전달할 수 있습니다. 빈 문자열을 사용하여 암호 없음을 나타낼 수 있습니다. 암호 사용을 마쳤으면 SecureZeroMemory 함수를 호출하여 메모리에서 암호를 지웁 수 있습니다. 암호 보호에 대한 자세한 내용은 암호 처리를 참조하세요.

[in] lpUserName

연결을 만드는 데 사용되는 사용자 이름에 대한 포인터입니다. NULL이면 기본 사용자 이름(현재 로그온한 사용자의 이름)이 적용됩니다. 사용자가 리소스에 연결하려고 하지만 해당 리소스에 대해 할당된 사용자 이름 또는 계정이 다른 경우에 사용됩니다.

[in] dwFlags

다음 값의 조합입니다. 공급자는 설정할 수 있는 다른 dwFlag 비트를 무시해야 합니다.

의미
CONNECT_TEMPORARY
검색을 위해 연결이 설정되고 있으며 아마도 빠르게 릴리스될 것입니다.
CONNECT_INTERACTIVE
연결은 인증을 위해 사용자와 상호 작용할 수 있습니다.
CONNECT_PROMPT
사용자에게 대안을 제공할 기회를 제공하지 않고 사용자 이름 또는 암호에 대한 기본값을 사용하지 마세요. 이 플래그는 CONNECT_INTERACTIVE 설정된 경우에만 유효합니다.
CONNECT_DEFERRED
네트워크 연결을 만들기 위해 원격 네트워크 작업을 수행하지 마세요. 대신 연결을 "연결이 끊긴 상태"로 복원합니다. 일부 프로세스에서 연결을 사용하려고 할 때만 실제 연결을 시도합니다. 이 비트가 설정되면 호출자는 lpLocalName을 제공해야 합니다.

이 기능은 로그온 시 네트워크 연결 복원 속도를 높이기 위해 사용됩니다. 이를 지원하는 공급자는 NPGetCaps에서 WNNC_CON_DEFERRED 비트를 반환해야 합니다.

반환 값

함수가 성공하면 WN_SUCCESS 반환합니다. 그렇지 않으면 오류 코드가 반환됩니다. 여기에는 다음 중 하나가 포함될 수 있습니다.

반환 코드 설명
WN_BAD_NETNAME
lpNetResource에 전달된 구조체의 lpRemoteName 멤버 값이 이 공급자에 대해 유효하지 않습니다.
WN_BAD_LOCALNAME
lpNetResource에 전달된 구조체의 lpLocalName 멤버 값이 잘못되었습니다.
WN_BAD_PASSWORD
지정한 암호가 잘못되었습니다.
WN_ALREADY_CONNECTED
lpNetResource에 전달된 구조체의 lpLocalName 멤버에 지정된 디바이스가 이미 연결되어 있습니다.
WN_ACCESS_DENIED
연결을 설정할 수 있는 권한이 거부되었습니다.
WN_NO_NETWORK
네트워크가 없습니다.
WN_CANCEL
공급자가 표시하는 대화 상자를 사용하여 사용자가 연결을 취소했습니다.

설명

지정된 자격 증명이 부족하고 CONNECT_INTERACTIVE 플래그가 설정되어 공급자가 암호 대화 상자를 표시하는 경우 공급자는 액세스 거부 오류 코드(ERROR_LOGON_FAILURE, WN_BAD_PASSWORD, WN_ACCESS_DENIED 중 하나)를 반환하지 않을 수 있습니다. 제안된 동작은 공급자가 사용자가 자격 증명을 제공하거나 "취소" 단추를 누를 때까지 사용자에게 유효한 자격 증명을 계속 요청하는 것입니다. WNetConnectionDialog 또는 WNetConnectionDialog1 함수 중에 요청된 연결을 만들기 위해 NPAddConnection3이 호출되고 액세스 거부 코드가 반환되면 WNetConnectionDialog 또는 WNetConnectionDialog1 함수 자체에 암호 대화 상자가 표시됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 npapi.h

추가 정보

NPAddConnection