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가 NDIS_OID_REQUEST 구조를 성공적으로 할당했습니다. CloneRequest 매개 변수는 NDIS_OID_REQUEST 구조체에 대한 포인터를 포함합니다. |
|
SourceHandle에 지정된 NDIS 핸들이 잘못되어 할당 요청이 실패했습니다. |
|
NDIS에 할당 요청을 완료하기에 충분한 리소스가 없기 때문에 할당 요청이 실패했습니다. |
|
드라이버는 이전 목록에 있는 구조가 아닌 다른 이유로 복제된 구조를 할당하지 못했습니다. |
설명
기본 드라이버로 요청을 전달하려면 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) |