MINIPORT_OID_REQUEST 콜백 함수(ndis.h)
NDIS는 미니포트 드라이버의 MiniportOidRequest 함수를 호출하여 드라이버의 정보를 쿼리하거나 설정하는 OID 요청을 처리합니다.
구문
MINIPORT_OID_REQUEST MiniportOidRequest;
NDIS_STATUS MiniportOidRequest(
[in] NDIS_HANDLE MiniportAdapterContext,
[in] PNDIS_OID_REQUEST OidRequest
)
{...}
매개 변수
[in] MiniportAdapterContext
miniport 드라이버가 MiniportInitializeEx 함수에 할당한 컨텍스트 영역에 대한 핸들입니다. 미니포트 드라이버는 이 컨텍스트 영역을 사용하여 미니포트 어댑터에 대한 상태 정보를 유지 관리합니다.
[in] OidRequest
미니포트 드라이버가 처리할 버퍼와 요청 패킷을 모두 포함하는 NDIS_OID_REQUEST 구조체에 대한 포인터입니다. 요청에 따라 드라이버는 제공된 구조에서 요청된 정보를 반환합니다.
반환 값
MiniportOidRequest 는 다음 상태 값 중 하나를 반환할 수 있습니다.
| 반환 코드 | 설명 |
|---|---|
|
미니포트 드라이버가 요청된 대로 데이터를 설정하거나 가져옵니다. |
|
미니포트 드라이버는 요청을 비동기적으로 완료합니다. 미니포트 드라이버가 모든 처리를 완료한 후에는 NdisMOidRequestComplete 함수를 호출하여 요청이 완료되었음을 NDIS에 알려야 합니다. |
|
OidRequest에 지정된 요청이 잘못되었거나 인식되지 않습니다. |
|
OidRequest에 지정된 요청은 인식되지만 미니포트 드라이버에서는 지원되지 않습니다. |
|
OidRequest에서 제공된 버퍼가 너무 작아서 요청된 데이터를 저장할 수 없습니다. |
|
OidRequest에서 NDIS_OID_REQUEST 구조체의 InformationBufferLength 멤버에 지정된 값이 지정된 OID_ XXX 코드에 대해 잘못되었습니다. |
|
OidRequest에서 요청에 대해 지정된 매개 변수 중 하나 이상이 잘못되었습니다. |
|
MiniportDevicePnPEventNotify 함수를 호출하여 기습 제거를 표시한 후 NDIS는 드라이버의 MiniportHaltEx 함수를 호출합니다. NDIS가 MiniportHaltEx를 호출하기 전에 드라이버가 OID 요청을 수신하는 경우 상태 값이 NDIS_STATUS_NOT_ACCEPTED 이러한 요청을 즉시 완료해야 합니다. |
|
미니포트 드라이버가 요청 처리를 중지했습니다. 예를 들어 NDIS는 MiniportResetEx 함수를 호출했습니다. |
|
미니포트 드라이버는 후속 상태 표시와 함께 OID 완료 상태를 제공합니다. 미니포트 드라이버는 특정 OID에서 허용하지 않는 한 NDIS_STATUS_INDICATION_REQUIRED 반환할 수 없습니다. 이 상태가 허용되는지 확인하려면 OID 참조 페이지를 참조하세요. NDIS_STATUS_INDICATION_REQUIRED 대한 자세한 내용은 NDIS_OID_REQUEST 및 NDIS_STATUS_INDICATION 참조하세요. |
설명
드라이버는 NdisMRegisterMiniportDriver 함수를 호출할 때 MiniportOidRequest 진입점을 지정합니다.
NDIS는 자체적으로 또는 NdisOidRequest 함수를 호출하는 바인딩된 프로토콜 드라이버를 대신하여 MiniportOidRequest 함수를 호출합니다. 미니포트 드라이버는 OidRequest 에서 제공된 요청을 검사하고 요청된 작업을 수행해야 합니다. 미니포트 드라이버가 처리하는 OID에 대한 자세한 내용은 NDIS OID를 참조하세요.
NDIS는 OidRequest 에서 OID 관련 콘텐츠의 유효성을 검사하지 않습니다. 따라서 드라이버 자체는 이러한 콘텐츠의 유효성을 검사해야 합니다. 드라이버에서 설정할 값이 범위를 벗어나는 것으로 확인되면 요청이 실패하고 NDIS_STATUS_INVALID_DATA 반환해야 합니다.
MiniportOidRequest가 NDIS_STATUS_PENDING 반환하는 경우 NDIS는 보류 중인 요청이 완료될 때까지 MiniportAdapterContext에 지정된 미니포트 어댑터에 대해 다른 요청으로 MiniportOidRequest를 호출하지 않습니다.
예제
MiniportOidRequest 함수를 정의하려면 먼저 정의 중인 함수의 형식을 식별하는 함수 선언을 제공해야 합니다. Windows 드라이버에 대한 함수 형식 집합을 제공합니다. 함수 형식을 사용하여 함수를 선언하면 드라이버, SDV(정적 드라이버 검증 도구) 및 기타 확인 도구에 대한 Code Analysis 오류를 찾는 데 도움이 되며, Windows 운영 체제용 드라이버를 작성하기 위한 요구 사항입니다.예를 들어 " MyOidRequest"라는 MiniportOidRequest 함수를 정의하려면 다음 코드 예제와 같이 MINIPORT_OID_REQUEST 형식을 사용합니다.
MINIPORT_OID_REQUEST MyOidRequest;
그런 다음 다음과 같이 함수를 구현합니다.
_Use_decl_annotations_
NDIS_STATUS
MyOidRequest(
NDIS_HANDLE MiniportAdapterContext,
PNDIS_OID_REQUEST OidRequest
)
{...}
MINIPORT_OID_REQUEST 함수 형식은 Ndis.h 헤더 파일에 정의됩니다. 코드 분석 도구를 실행할 때 오류를 보다 정확하게 식별하려면 함수 정의에 Use_decl_annotations 주석을 추가해야 합니다. Use_decl_annotations 주석은 헤더 파일의 MINIPORT_OID_REQUEST 함수 형식에 적용되는 주석이 사용되도록 합니다. 함수 선언에 대한 요구 사항에 대한 자세한 내용은 NDIS 드라이버에 함수 역할 형식을 사용하여 함수 선언을 참조하세요.
Use_decl_annotations 대한 자세한 내용은 함수 동작 주석 지정을 참조하세요.
요구 사항
| 지원되는 최소 클라이언트 | NDIS 6.0 이상에서 지원됩니다. |
| 대상 플랫폼 | Windows |
| 헤더 | ndis.h(Ndis.h 포함) |
| IRQL | PASSIVE_LEVEL |
| DDI 규정 준수 규칙 | NdisOidComplete, NdisOidDoubleComplete, NdisOidDoubleRequest, NdisTimedOidComplete, WlanAssociation, WlanDisassociation, WlanTimedAssociation, WlanTimedConnectionRoaming, WlanTimedConnectRequest, WlanTimedLinkQuality, WlanTimedScan |
참고 항목
피드백
다음에 대한 사용자 의견 제출 및 보기