NDIS 포트 할당
미니포트 어댑터에 NDIS 포트를 할당하기 위해 미니포트 드라이버는 NdisMAllocatePort 함수를 호출합니다. NdisMAllocatePort 는 동기적이며 NDIS가 포트에 필요한 리소스를 성공적으로 할당한 후에 반환됩니다.
미니포트 드라이버가 NdisMAllocatePort를 호출하기 전에 드라이버는 NdisMSetMiniportAttributes 함수를 호출하여 NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES 구조체에서 특성을 설정해야 합니다. 미니포트 드라이버는 NdisMSetMiniportAttributes 호출이 성공적으로 반환되고 NDIS가 해당 미니포트 어댑터에 대한 MiniportHaltEx 함수를 호출하기 전에 미니포트 어댑터에 대해 NdisMAllocatePort를 호출할 수 있습니다.
NDIS는 항상 기본 포트(포트 0)를 할당하므로 미니포트 드라이버는 기본 포트를 할당하지 않아야 합니다. 미니포트 드라이버가 MiniportHaltEx 형식을 반환한 후 NDIS는 기본 포트를 해제합니다.
NDIS는 미니포트 드라이버가 NdisMAllocatePort를 호출할 때 포트 번호를 포트에 할당합니다. 드라이버는 드라이버가 NdisMAllocatePort를 호출하기 전에 NDIS_PORT_CHARACTERISTICS 구조의 포트 특성을 지정합니다. NdisMAllocatePort가 성공적으로 반환되면 PortCharacteristics 매개 변수가 지정하는 NDIS_PORT_CHARACTERISTICS PortNumber 멤버가 NDIS가 포트에 할당한 포트 번호로 설정됩니다.
MiniportHaltEx에서 반환하기 전에 미니포트 드라이버는 NdisMFreePort 함수를 호출하여 미니포트 어댑터와 연결된 모든 포트를 해제해야 합니다. 미니포트 어댑터가 초기화에 실패하면 드라이버는 MiniportInitializeEx 함수에서 반환하기 전에 드라이버가 할당한 모든 포트를 해제하기 위해 NdisMFreePort를 호출해야 합니다. NDIS 포트 해제에 대한 자세한 내용은 NDIS 포트 해제를 참조하세요.
미니포트 드라이버가 할당할 수 있는 최대 포트 수는 0xffffff. 그러나 실제로 드라이버는 포트 유형 및 드라이버 애플리케이션의 요구 사항에 따라 최대 수를 설정합니다. 예를 들어 브리지 애플리케이션의 경우 포트 수가 16을 초과할 가능성이 낮습니다. 포트 수는 802.1x의 지원 포트를 사용하는 액세스 포인트의 경우 더 높고 VPN(가상 사설망) 포트를 사용하는 WAN 드라이버의 경우 훨씬 더 높습니다.
미니포트 드라이버가 포트를 할당한 후 포트가 할당된 상태이고 포트가 활성화되지 않습니다. 포트는 포트가 활성화될 때까지 데이터를 보내고 받거나, 상태 표시를 시작하거나, OID 요청을 실행하거나, 플러그 앤 플레이(PnP) 이벤트를 시작하는 데 사용할 수 없습니다. NDIS는 미니포트 드라이버가 NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES 구조에서 등록 특성을 설정한 후 자동으로 기본 포트를 활성화합니다. NDIS가 기본 포트를 활성화하지 않도록 요청하기 위해 미니포트 드라이버는 NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES AttributeFlags 멤버에서 NDIS_MINIPORT_ATTRIBUTES_CONTROLS_DEFAULT_PORT 설정할 수 있습니다.
NDIS는 기본 포트의 인증 상태를 NDIS_MINIPORT_INIT_PARAMETERS 구조체의 DefaultPortAuthStates 멤버에 있는 MiniportInitializeEx 함수에 전달합니다. 미니포트 드라이버가 기본 포트를 제어하는 경우 미니포트 드라이버가 기본 포트를 활성화할 때 기본 인증 설정을 사용하여 기본 포트를 활성화할 수 있습니다. 기본 포트 활성화에 대한 자세한 내용은 NDIS 포트 활성화를 참조하세요.
미니포트 드라이버는 드라이버가 할당하고 활성화하는 포트에 대해 NDIS_PORT_CHARACTERISTICS 구조의 Flags 멤버에서 NDIS_PORT_CHAR_USE_DEFAULT_AUTH_SETTINGS 플래그를 사용할 수 있습니다. 할당 사례의 경우 NDIS는 새 포트에 기본 인증 상태를 할당하고 NdisMAllocatePort 함수에 전달되는 인증 상태를 무시합니다.
NDIS 포트 상태에 대한 자세한 내용은 NDIS 포트 상태를 참조하세요. 포트 활성화에 대한 자세한 내용은 NDIS 포트 활성화를 참조하세요.