NdisMCmOidRequest 함수(ndis.h)

NdisMCmOidRequest 함수는 MCM(미니포트 호출 관리자) 드라이버에서 CoNDIS 클라이언트로 OID 요청을 보냅니다.

구문

NDIS_STATUS NdisMCmOidRequest(
  [in]           NDIS_HANDLE       NdisAfHandle,
  [in, optional] NDIS_HANDLE       NdisVcHandle,
  [in, optional] NDIS_HANDLE       NdisPartyHandle,
                 PNDIS_OID_REQUEST NdisOidRequest
);

매개 변수

[in] NdisAfHandle

OID 요청이 전달되는 AF(주소 패밀리) 및 암시적으로 클라이언트를 식별하는 핸들입니다. MCM 드라이버는 원래 ProtocolCmOpenAf 함수에 대한 입력 매개 변수로 이 핸들을 얻었습니다.

[in, optional] NdisVcHandle

요청이 VC별인 경우 호출자가 요청하는 VC(가상 연결)를 식별하거나 정보를 설정하는 핸들입니다. 그렇지 않으면 이 요청이 VC 관련이 아닌 경우 이 매개 변수는 NULL입니다. VC 관련 요청의 경우 호출자는 원래 NdisMCmCreateVc 함수를 사용하여 VC를 만들 때 또는 ProtocolCoCreateVc 함수에 대한 입력 매개 변수로 이 핸들을 얻었습니다.

[in, optional] NdisPartyHandle

요청이 파티별인 경우 호출자가 요청하는 다중 포인트 VC의 파티를 식별하거나 정보를 설정하는 핸들입니다. 그렇지 않으면 이 요청이 파티별로 지정되지 않은 경우 이 매개 변수는 NULL입니다. 파티별 요청의 경우 MCM 드라이버는 원래 이 핸들을 ProtocolCmAddParty 함수에 대한 입력 매개 변수로 획득했습니다.

NdisOidRequest

NDIS_OID_REQUEST 구조를 포함하는 호출자가 할당한 버퍼에 대한 포인터입니다.

반환 값

NdisMCmOidRequest 는 다음 값 중 하나를 반환합니다.

반환 코드 설명
NDIS_STATUS_SUCCESS
요청 작업이 성공적으로 완료되었습니다.
NDIS_STATUS_PENDING
요청이 비동기적으로 처리되고 NDIS는 호출자의 를 호출합니다.요청 이 완료되면 ProtocolCoOidRequestComplete 함수입니다.
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 코드의 요구 사항과 일치하지 않습니다. 정보 버퍼가 너무 작으면 NdisMCmOidRequest가 반환될 때 NDIS_OID_REQUEST BytesNeeded 멤버에 InformationBufferLength에 대한 올바른 값이 포함됩니다.
NDIS_STATUS_INVALID_DATA
지정된 NDIS_OID_REQUEST 구조의 InformationBuffer에 제공된 데이터는 지정된 OID_XXX 코드에 대해 유효하지 않습니다.
NDIS_STATUS_NOT_SUPPORTED 또는 NDIS_STATUS_NOT_RECOGNIZED
클라이언트 드라이버는 요청된 작업을 지원하지 않습니다.
NDIS_STATUS_RESOURCES
리소스 부족으로 인해 요청을 충족할 수 없습니다. 일반적으로 이 반환 값은 메모리 할당 시도가 실패했음을 나타내지만, 나중에 제출된 경우 동일한 요청이 동일한 이유로 실패함을 반드시 나타내는 것은 아닙니다.
NDIS_STATUS_FAILURE
이 값은 일반적으로 더 구체적인 NDIS_STATUS_XXX 상태 코드가 적용되지 않을 때 반환되는 비특이적 기본값입니다.
NDIS_STATUS_REQUEST_ABORTED
대상 드라이버가 요청 처리를 중지했습니다.

설명

CONDIS 클라이언트에 대한 OID 요청을 시작하기 위해 MCM 드라이버는 NdisMCmOidRequest 함수를 호출합니다. MCM 드라이버가 NdisMCmOidRequest를 호출하기 전에 드라이버는 요청에 대한 메모리를 할당하고 NDIS_OID_REQUEST 구조를 초기화합니다. MCM은 CoNDIS OID 코드를 사용하여 NDIS_OID_REQUEST 구조체의 Oid 멤버를 설정합니다.

MCM 드라이버는 NdisMCmOidRequest 를 호출하여 NdisAfHandle 매개 변수가 식별하는 클라이언트에 주소 변경과 같은 연결 지향 정보를 전달할 수 있습니다.

MCM이 NdisMCmOidRequest를 호출한 후 NDIS는 클라이언트의 ProtocolCoOidRequest 함수를 호출합니다.

MCM 드라이버의 요청이 VC별 또는 파티별인 경우 MCM 드라이버는 각각 NdisVcHandle 또는 NdisPartyHandle 매개 변수에서 NULL이 아닌 값을 전달합니다.

NdisMCmOidRequest가 NDIS_STATUS_PENDING 반환하면 요청이 비동기적으로 처리되고 NDIS에서 MCM을 호출합니다.요청 이 완료되면 ProtocolCoOidRequestComplete 함수입니다. NdisMCmOidRequest가 다른 상태 반환하는 경우 NdisMCmOidRequest가 반환되고 NDIS가 ProtocolCoOidRequestComplete를 호출하지 않으면 요청이 완료됩니다.

NdisMCmOidRequest와 함께 사용하도록 정의된 OID에 대한 자세한 내용은 NDIS OID를 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 NDIS 6.0 이상에서 지원됩니다.
대상 플랫폼 데스크톱
머리글 ndis.h(Ndis.h 포함)
라이브러리 Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI 규정 준수 규칙 Irql_MCM_Function(ndis)

추가 정보

NDIS_OID_REQUEST

NdisMCmCreateVc

ProtocolCmAddParty

ProtocolCmOpenAf

ProtocolCoCreateVc

ProtocolCoOidRequest

ProtocolCoOidRequestComplete