Share via


NdisAllocateCloneOidRequest 함수(ndis.h)

NdisAllocateCloneOidRequest 함수는 새 NDIS_OID_REQUEST 구조체에 대한 메모리를 할당하고 기존 NDIS_OID_REQUEST 구조체의 모든 정보를 새로 할당된 구조체에 복사합니다.

구문

NDIS_STATUS NdisAllocateCloneOidRequest(
  [in] IN NDIS_HANDLE        SourceHandle,
       IN PNDIS_OID_REQUEST  OidRequest,
  [in] IN UINT               PoolTag,
       OUT PNDIS_OID_REQUEST *ClonedOidRequest
);

매개 변수

[in] SourceHandle

필터 모듈 또는 중간 드라이버의 프로토콜 바인딩을 식별하는 NDIS 핸들입니다.

OidRequest

NDIS가 새로 할당된 구조체에 정보를 복사하는 기존 NDIS_OID_REQUEST 구조체에 대한 포인터입니다.

[in] PoolTag

커널 풀 태그입니다. 태그는 작은따옴표로 구분된 문자열로, 일반적으로 역순으로 지정된 4자까지 가능합니다.

ClonedOidRequest

NDIS_OID_REQUEST 구조체에 대한 포인터에 대한 포인터입니다. NDIS가 NDIS_STATUS_SUCCESS 반환하는 경우 NDIS는 복제된 새 NDIS_OID_REQUEST 구조체에 대한 포인터를 제공합니다. 그렇지 않으면 NDIS는 포인터 값을 NULL로 설정합니다.

반환 값

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

반환 코드 설명
NDIS_STATUS_SUCCESS
NDIS가 NDIS_OID_REQUEST 구조를 성공적으로 할당했습니다. CloneRequest 매개 변수는 NDIS_OID_REQUEST 구조체에 대한 포인터를 포함합니다.
NDIS_STATUS_INVALID_PARAMETER
SourceHandle에 지정된 NDIS 핸들이 잘못되어 할당 요청이 실패했습니다.
NDIS_STATUS_RESOURCES
NDIS에 할당 요청을 완료하기에 충분한 리소스가 없기 때문에 할당 요청이 실패했습니다.
NDIS_STATUS_FAILURE
드라이버는 이전 목록에 있는 구조가 아닌 다른 이유로 복제된 구조를 할당하지 못했습니다.

설명

기본 드라이버로 요청을 전달하려면 NDIS 중간 드라이버 또는 필터 드라이버가 NdisAllocateCloneOidRequest 를 호출하여 복제된 NDIS_OID_REQUEST 구조를 할당해야 합니다. 필터 드라이버 또는 중간 드라이버는 원래 NDIS_OID_REQUEST 구조를 기본 드라이버로 전달해서는 안 됩니다.

NdisAllocateCloneOidRequest 는 새 메모리를 할당하고 기존 NDIS_OID_REQUEST 구조체의 데이터를 새 구조체로 복사합니다.

이후에 드라이버는 NdisFreeCloneOidRequest 함수를 호출하여 NDIS_OID_REQUEST 구조를 해제해야 합니다.

요구 사항

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

추가 정보

NDIS_OID_REQUEST

NdisFreeCloneOidRequest