NdisSynchronousOidRequest 함수(ndis.h)

프로토콜 드라이버는 NdisSynchronousOidRequest 함수를 호출하여 새 동기 OID 요청을 시작하고 기본 드라이버에 발급합니다.

구문

NDIS_STATUS NdisSynchronousOidRequest(
  [in] NDIS_HANDLE      NdisBindingHandle,
  [in] NDIS_OID_REQUEST *OidRequest
);

매개 변수

[in] NdisBindingHandle

바인딩의 대상 미니포트 어댑터를 식별하는 NdisOpenAdapterEx 함수에서 반환된 핸들입니다.

[in] OidRequest

지정된 OID_Xxx 코드로 요청되는 작업을 지정하는 NDIS_OID_REQUEST 구조체에 대한 포인터입니다. 구조체는 OID 쿼리, 집합 또는 메서드 요청을 지정할 수 있습니다.

반환 값

기본 드라이버는 반환하는 NDIS_STATUS_XXX 코드 NdisSynchronousOidRequest 를 결정하지만 일반적으로 다음 값 중 하나입니다.

반환 코드 설명
NDIS_STATUS_SUCCESS
요청 작업이 성공적으로 완료되었습니다.
NDIS_STATUS_INVALID_OID
OidRequest에서 NDIS_OID_REQUEST 구조화된 버퍼의 Oid 멤버에 지정된 OID_Xxx 코드가 기본 드라이버에서 잘못되었거나 지원되지 않습니다.
NDIS_STATUS_INVALID_LENGTH 또는 NDIS_STATUS_BUFFER_TOO_SHORT
OidRequest에서 NDIS_OID_REQUEST 구조화된 버퍼의 InformationBufferLength 멤버에 지정된 값이 지정된 OID_Xxx 코드의 요구 사항과 일치하지 않습니다. 정보 버퍼가 너무 작으면 BytesNeeded 멤버는 NdisSynchronousOidRequest에서 반환되는 InformationBufferLength에 대한 올바른 값을 포함합니다.
NDIS_STATUS_INVALID_DATA
지정된 NDIS_OID_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를 다시 설정하므로 기본 미니포트 드라이버는 현재 요청을 충족할 수 없습니다. 호출자의 ProtocolStatusEx 함수는 다시 설정이 진행 중임을 나타내기 위해 NDIS_STATUS_RESET_START 함께 호출되거나 호출됩니다. 이 반환 값이 반드시 나중에 제출된 동일한 요청이 동일한 이유로 실패함을 나타내는 것은 아닙니다.
NDIS_STATUS_FAILURE
이 값은 일반적으로 비특정 기본값으로, 더 구체적인 NDIS_STATUS_Xxx 값 중 어느 것도 기본 드라이버가 요청에 실패하지 않을 때 반환됩니다.

설명

NdisSynchronousOidRequest 함수는 일반 OID 요청에 사용할 수 없습니다. 일반적인 OID 요청의 경우 NdisOidRequest 함수를 대신 사용합니다. NdisSynchronousOidRequest 는 NDIS가 동기 OID 인터페이스와 함께 사용하도록 지원하는 OID에만 사용할 수 있습니다. 대부분의 프로토콜 드라이버는 NdisSynchronousOidRequest를 호출할 필요가 없습니다.

프로토콜 드라이버는 프로토콜 드라이버에서 시작된 동기 OID 요청이 완료될 때까지 어댑터 바인딩을 닫아서는 안 됩니다.

프로토콜 드라이버는 NdisSynchronousOidRequest를 호출하기 위해 ProtocolOidRequestComplete 또는 ProtocolDirectOidRequestComplete를 구현할 필요가 없습니다. 이름에서 알 수 있듯이 동기 OID 요청은 항상 동기적으로 완료되므로 비동기 콜백이 없습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 10, 버전 1709
대상 플랫폼 유니버설
헤더 ndis.h(Ndis.h 포함)
라이브러리 Ndis.lib
IRQL <= DISPATCH_LEVEL

추가 정보

NDIS_OID_REQUEST

NdisOidRequest

NdisOpenAdapterEx

ProtocolDirectOidRequestComplete

ProtocolOidRequestComplete

ProtocolStatusEx