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
미니포트 드라이버가 MiniportInitializeEx에 할당한 컨텍스트 영역에 대한 핸들이. 미니포트 드라이버는 이 컨텍스트 영역을 사용하여 미니포트 어댑터의 상태 정보를 유지 관리합니다.
[in] OidRequest
미니포트 드라이버가 처리할 버퍼와 요청 패킷을 모두 포함하는 NDIS_OID_REQUEST 구조체에 대한 포인터입니다. 요청에 따라 드라이버는 제공된 구조에서 요청된 정보를 반환합니다.
반환 값
MiniportSynchronousOidRequest 다음 상태 값 중 하나를 반환할 수 있습니다.
반환 코드 | 묘사 |
---|---|
|
미니포트 드라이버는 요청된 대로 데이터를 설정하거나 구했습니다. |
|
OidRequest 요청이 잘못되었거나 인식되지 않았습니다. |
|
지정된 OidRequest 요청이 인식되었지만 미니포트 드라이버는 이를 지원하지 않습니다. |
|
OidRequest 버퍼가 너무 작아서 요청된 데이터를 저장할 수 없습니다. |
|
OidRequest NDIS_OID_REQUEST 구조체의 InformationBufferLength 멤버에 지정된 값이 지정된 OID_Xxx 코드에 대해 잘못되었습니다. |
|
OidRequest 요청에 대해 지정된 하나 이상의 매개 변수가 잘못되었습니다. |
|
미니포트 드라이버는 후속 상태 표시와 함께 OID 완료 상태를 제공합니다. 미니포트 드라이버는 특정 OID에서 허용하지 않는 한 NDIS_STATUS_INDICATION_REQUIRED 반환할 수 없습니다. 이 상태가 허용되는지 확인하려면 OID 참조 페이지를 참조하세요. NDIS_STATUS_INDICATION_REQUIRED 대한 자세한 내용은 NDIS_OID_REQUEST 및 NDIS_STATUS_INDICATION참조하세요. |
|
다음을 호출한 후 miniportDevicePnPEventNotify 함수를 NDIS는 드라이버의 MiniportHaltEx 함수라고 합니다. 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 요청, MiniportPause대해, MiniportResetEx대해 또는 전원 전환에 대해 서로에 대해 동기 OID 요청을 직렬화하지 않습니다. 자체 동기화를 구현하고 요청을 성공적으로 처리할 수 없는 시점에 전달되는 요청을 실패하는 것은 미니포트 드라이버의 책임입니다.
NDIS는 MiniportHaltEx대해 동기 OID 요청을 직렬화합니다. NDIS는 MiniportHaltEx 호출되면 동기 OID 요청이 활성화되지 보장합니다.
NDIS 선택적 일시 중단을 구현하는 미니포트 드라이버는 동기 OID와 호환되지 않으며 MiniportSynchronousOidRequest 처리기를 등록해서는 안 됩니다.
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 10 버전 1709 |
대상 플랫폼 | Windows |
헤더 | ndis.h(Ndis.h 포함) |
IRQL | <= DISPATCH_LEVEL |
참고 항목
MiniportDevicePnPEventNotifyNDIS_MINIPORT_DRIVER_CHARACTERISTICS
NDIS 6.80 동기 OID 요청 인터페이스