다음을 통해 공유


NdisRequest 함수(ndis.h)

참고 NDIS 5. x 더 이상 사용되지 않으며 NDIS 6으로 대체됩니다. x . 새로운 NDIS 드라이버 개발은 Windows Vista 시작하는네트워크 드라이버를 참조하세요. NDIS 5 포팅에 대한 자세한 내용입니다. x 드라이버를 NDIS 6에. x NDIS 5.x 드라이버를 NDIS 6.0 참조하세요.

NdisRequest NIC의 기능 또는 상태를 쿼리하거나 NIC의 상태를 설정하는 요청을 기본 드라이버에 전달합니다.

통사론

void NdisRequest(
  [out] PNDIS_STATUS  Status,
  [in]  NDIS_HANDLE   NdisBindingHandle,
  [in]  PNDIS_REQUEST NdisRequest
);

매개 변수

[out] Status

이 함수에서 반환 시 설정된 호출자 제공 변수에 대한 포인터입니다. 기본 드라이버는 반환되는 NDIS_STATUS_XXX 결정하지만 일반적으로 다음 값 중 하나입니다.

  • NDIS_STATUS_SUCCESS
    요청된 작업이 성공적으로 완료되었습니다.

  • NDIS_STATUS_PENDING
    요청이 비동기적으로 처리되고 있으며 호출자의 ProtocolRequestComplete 함수가 완료되면 호출됩니다.

  • NDIS_STATUS_INVALID_OID
    NdisRequest NDIS_REQUEST 구조화된 버퍼의 Oid 멤버에 지정된 OID_XXX 코드가 잘못되었거나 기본 드라이버에서 지원되지 않습니다.

  • NDIS_STATUS_INVALID_LENGTH 또는 NDIS_STATUS_BUFFER_TOO_SHORT
    NdisRequest NDIS_REQUEST 구조화된 버퍼의 InformationBufferLength 멤버에 지정된 값이 지정된 OID_XXX 코드에 대한 요구 사항과 일치하지 않습니다. 정보 버퍼가 너무 작으면 BytesNeeded 멤버에 NdisRequest반환할 때 InformationBufferLength 대한 올바른 값이 포함됩니다.

  • NDIS_STATUS_INVALID_DATA
    지정된 NDIS_REQUEST 구조의 InformationBuffer 제공된 데이터는 지정된 OID_XXX 코드에 유효하지 않습니다.

  • NDIS_STATUS_NOT_SUPPORTED 또는 NDIS_STATUS_NOT_RECOGNIZED
    기본 드라이버는 요청된 작업을 지원하지 않습니다.

  • NDIS_STATUS_RESOURCES
    리소스 부족으로 인해 요청을 충족할 수 없습니다. 일반적으로 이 반환은 메모리 할당 시도가 실패했음을 나타내지만, 나중에 제출된 동일한 요청이 동일한 이유로 실패했음을 반드시 나타내는 것은 아닙니다.

  • NDIS_STATUS_NOT_ACCEPTED
    기본 드라이버는 NIC에서 요청된 작업(일반적으로 집합)을 시도했지만 넷카드에 의해 실패했습니다. 예를 들어 너무 많은 멀티캐스트 주소를 설정하려고 하면 이 값이 반환될 수 있습니다.

  • NDIS_STATUS_CLOSING 또는 NDIS_STATUS_CLOSING_INDICATING
    닫기 진행 중이므로 기본 드라이버가 요청된 작업을 실패했습니다.

  • NDIS_STATUS_RESET_IN_PROGRESS
    현재 넷카드를 다시 설정 중이므로 기본 NIC 드라이버는 현재 요청을 충족할 수 없습니다. 호출자의 ProtocolStatus 함수가 NDIS_STATUS_RESET_START 호출되어 다시 설정이 진행 중임을 나타냅니다. 이 반환 값이 나중에 제출된 동일한 요청이 동일한 이유로 실패했음을 반드시 나타내는 것은 아닙니다.

  • NDIS_STATUS_FAILURE
    이 값은 일반적으로 비특이적 기본값으로, 더 구체적인 NDIS_STATUS_XXX 인해 기본 드라이버가 요청에 실패하지 않을 때 반환됩니다.

[in] NdisBindingHandle

대상 NIC 또는 호출자가 바인딩된 다음 하위 드라이버의 가상 어댑터를 식별하는 NdisOpenAdapter 반환된 핸들을 지정합니다.

[in] NdisRequest

쿼리 또는 집합에 대해 지정된 OID_ XXX 코드로 요청된 작업을 지정하는 버퍼링된 구조체에 대한 포인터입니다.

반환 값

없음

발언

프로토콜 드라이버는 요청할 작업의 OID_XXX 연결된 정보 버퍼에 충분한 메모리를 할당해야 합니다. 또한 드라이버는 NdisRequest호출하기 전에 NdisRequest 버퍼를 할당하고 설정해야 합니다. 요청을 처리하는 동안 기본 드라이버가 발생한 IRQL에서 실행되므로 두 버퍼는 모두 비페이지 풀에서 할당되어야 합니다.

중간 NDIS 드라이버 위에 계층화된 호출자의 경우 NdisRequest 자체 기능에 대한 정보를 반환하거나 해당 드라이버가 호출자가 결정한 방식으로 특정 기능을 처리하도록 지시하는 요청을 다음 하위 드라이버에 전달합니다. 다음 하위 드라이버가 NDIS 중간 드라이버인 경우 상위 수준 프로토콜에서 원래 제출한 요청을 완료하기 전에 자체 요청으로 NdisRequest 호출할 수 있습니다.

상태 반환된 일부 오류는 다음을 포함하여 복구할 수 있습니다.

NDIS_STATUS_INVALID_OID

NDIS_STATUS_INVALID_LENGTH

NDIS_STATUS_BUFFER_TOO_SHORT

NDIS_STATUS_INVALID_DATA

NDIS_STATUS_RESOURCES

NDIS_STATUS_RESET_IN_PROGRESS

즉, 드라이버는 NdisRequest 패킷을 적절하게 수정하여 OID_XXX 코드 및/또는 InformationBuffer 버퍼의 크기 또는 내용을 수정하고 요청 패킷을 NdisRequest다시 제출할 수 있습니다. 원래 호출에서 초기화가 진행 중이거나 일시적일 수 있는 리소스 부족으로 인해 해당 요청이 수행되지 않도록 하는 경우 NdisRequest 다시 제출 시 동일한 패킷이 충족될 수 있습니다.

NDIS 라이브러리는 기본 미니포트 드라이버에 대한 바인딩을 유지 관리합니다. 지정된 OID가 시스템에서 필터 라이브러리를 제공하는 시스템 정의 중간 형식과 연결된 경우 NDIS는 바인딩 관련 쿼리에 대한 정보를 반환할 수 있습니다.

일반 및 미디어별 OID 및 관련 정보 버퍼에 대한 자세한 내용은 NDIS 개체 식별자참조하세요.

  • 대상 플랫폼: 유니버설
  • 버전: Windows Vista에서 NDIS 6.0 드라이버에 대해 지원되지 않습니다. 대신 NdisOidRequest사용합니다. Windows Vista 및 Windows XP에서 NDIS 5.1 드라이버에 대해 지원됩니다.

요구 사항

요구
헤더 ndis.h(Ndis.h 포함)
라이브러리 Ndis.lib
IRQL IRQL <= DISPATCH_LEVEL

참고 항목