다음을 통해 공유


MINIPORT_SYNCHRONOUS_OID_REQUEST 함수(ndis.h)

NDIS는 미니포트 드라이버의 MiniportSynchronousOidRequest 콜백 함수를 호출하여 동기 OID 요청을 실행합니다.

구문

NDIS_STATUS MINIPORT_SYNCHRONOUS_OID_REQUEST(
  [in] NDIS_HANDLE      MiniportAdapterContext,
  [in] NDIS_OID_REQUEST *OidRequest
);

매개 변수

[in] MiniportAdapterContext

Miniport 드라이버가 MiniportInitializeEx 함수에 할당한 컨텍스트 영역에 대한 핸들입니다. 미니포트 드라이버는 이 컨텍스트 영역을 사용하여 미니포트 어댑터에 대한 상태 정보를 유지 관리합니다.

[in] OidRequest

미니포트 드라이버가 처리할 버퍼와 요청 패킷을 모두 포함하는 NDIS_OID_REQUEST 구조체에 대한 포인터입니다. 요청에 따라 드라이버는 제공된 구조에서 요청된 정보를 반환합니다.

반환 값

MiniportSynchronousOidRequest는 다음 상태 값 중 하나를 반환할 수 있습니다.

반환 코드 설명
NDIS_STATUS_SUCCESS
미니포트 드라이버는 요청된 대로 데이터를 설정하거나 가져옵니다.
NDIS_STATUS_INVALID_OID
OidRequest가 지정한 요청이 잘못되었거나 인식되지 않았습니다.
NDIS_STATUS_NOT_SUPPORTED
OidRequest가 지정한 요청이 인식되었지만 미니포트 드라이버는 이를 지원하지 않습니다.
NDIS_STATUS_BUFFER_TOO_SHORT
OidRequest가 제공하는 버퍼가 너무 작아서 요청된 데이터를 보유할 수 없습니다.
NDIS_STATUS_INVALID_LENGTH
OidRequest에서 NDIS_OID_REQUEST 구조체의 InformationBufferLength 멤버에 지정된 값이 지정된 OID_Xxx 코드에 대해 잘못되었습니다.
NDIS_STATUS_INVALID_DATA
OidRequest에서 요청에 대해 지정된 하나 이상의 매개 변수가 잘못되었습니다.
NDIS_STATUS_INDICATION_REQUIRED
미니포트 드라이버는 후속 상태 표시와 함께 OID 완성 상태 제공합니다. 미니포트 드라이버는 특정 OID에서 허용하지 않는 한 NDIS_STATUS_INDICATION_REQUIRED 반환할 수 없습니다. 이 상태 허용되는지 확인하려면 OID 참조 페이지를 참조하세요. NDIS_STATUS_INDICATION_REQUIRED 대한 자세한 내용은 NDIS_OID_REQUESTNDIS_STATUS_INDICATION 참조하세요.
NDIS_STATUS_NOT_ACCEPTED
를 호출한 후 MiniportDevicePnPEventNotify 함수는 드라이버의 MiniportHaltEx 함수라고 하는 NDIS의 깜짝 제거를 나타냅니다. NDIS가 MiniportHaltEx를 호출하기 전에 드라이버가 OID 요청을 받은 경우 상태 값이 NDIS_STATUS_NOT_ACCEPTED 이러한 요청을 즉시 완료해야 합니다.

미니포트 드라이버는 깜짝 제거 후 모든 OID에 대한 NDIS_STATUS_NOT_ACCEPTED 반환할 필요가 없지만 이렇게 하면 호출이 실패한 이유를 설명하는 데 도움이 됩니다.

설명

MiniportSynchronousOidRequest 는 선택적 함수입니다. 미니포트 드라이버는 동기 OID 요청을 처리하는 경우 이 함수를 등록합니다. 드라이버는 NDIS_MINIPORT_DRIVER_CHARACTERISTICS 구조체SynchronousOidRequestHandler 멤버를 사용하여 NdisMRegisterMiniportDriver 함수를 호출할 때 MiniportSynchronousOidRequest 진입점을 지정합니다.

미니포트 드라이버는 MiniportSynchronousOidRequest에서 NDIS_STATUS_PENDING 또는 NDIS_STATUS_REQUEST_ABORTED 반환해서는 안 됩니다. 동기 OID 요청은 보류 중이거나 취소할 수 없습니다.

미니포트 드라이버는 NDIS가 MiniportDevicePnPEventNotify 를 호출하여 드라이버에 디바이스의 깜짝 제거를 알린 후 NDIS_STATUS_NOT_ACCEPTED 반환할 수 있습니다. 그러나 미니포트 드라이버는 가능한 경우 다른 상태 코드로 OID 요청을 완료할 수 있습니다. 자세한 내용은 각 OID의 특정 설명서를 참조하세요.

미니포트 드라이버는 차단, 대기 또는 절전 모드 없이 동기 OID 요청을 신속하게 완료해야 합니다. 동기 OID 요청은 짧은 대기 시간 작업에만 사용되며 미니포트 드라이버는 몇 밀리초 내에 완료하기 위해 노력해야 합니다. 대부분의 OID 요청은 MiniportOidRequest로 전달되며, 이 요청은 더 긴 기간을 보류하거나 대기할 수 있습니다.

NDIS는 동기 OID 요청을 다른 OID 요청, MiniportPause, MiniportResetEx 또는 전원 전환에 대해 직렬화하지 않습니다. 미니포트 드라이버가 자체 동기화를 구현하고 요청을 성공적으로 처리할 수 없는 시점에 전달되는 요청을 실패하는 것은 미니포트 드라이버의 책임입니다.

NDIS는 MiniportHaltEx에 대해 동기 OID 요청을 직렬화합니다. NDIS는 MiniportHaltEx 가 호출된 후 동기 OID 요청이 활성화되지 않음을 보장합니다.

NDIS 선택적 일시 중단을 구현하는 미니포트 드라이버는 동기 OID와 호환되지 않으며 MiniportSynchronousOidRequest 처리기를 등록해서는 안 됩니다.

요구 사항

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

추가 정보

MiniportDevicePnPEventNotify

MiniportHaltEx

MiniportInitializeEx

MiniportOidRequest

MiniportPause

MiniportResetEx

NDIS_MINIPORT_DRIVER_CHARACTERISTICS

NDIS_OID_REQUEST

NDIS_STATUS_INDICATION

NdisMRegisterMiniportDriver

NDIS 6.80의 동기 OID 요청 인터페이스