_KsEdit 함수(ks.h)
KsEdit 함수는 지정된 항목이 동적으로 할당되고 개체 모음을 통해 AVStream 개체와 연결되도록 보장합니다.
구문
KSDDKAPI NTSTATUS _KsEdit(
[in] KSOBJECT_BAG ObjectBag,
[in, out] PVOID *PointerToPointerToItem,
[in] ULONG NewSize,
[in] ULONG OldSize,
[in] ULONG Tag
);
매개 변수
[in] ObjectBag
검사 사용할 KSOBJECT_BAG(PVOID 형식에 해당)입니다. 항목이 개체 모음 내에 포함되지 않은 경우 KsEdit 는 항목에 충분한 메모리를 동적으로 할당하고, 이전 내용을 복사하고, 새로 할당된 메모리를 이 개체 모음에 배치합니다.
[in, out] PointerToPointerToItem
편집 중인 항목에 대한 포인터에 대한 포인터입니다.
[in] NewSize
항목에 할당할 바이트 수입니다.
[in] OldSize
항목이 현재 차지하는 바이트 수입니다.
[in] Tag
할당에 사용할 풀 태그를 포함합니다. 드라이버는 일반적으로 풀 태그를 작은따옴표로 구분하여 최대 4자의 문자열로 지정합니다. 문자열은 일반적으로 역순으로 지정됩니다. 태그에 있는 각 문자의 ASCII 값은 0에서 127 사이여야 합니다.
반환 값
성공 또는 STATUS_INSUFFICIENT_RESOURCES 반환합니다.
설명
KsEdit 및 KsEditSized는 _KsEdit 사용하기 쉽도록 만든 매크로입니다. _KsEdit 항목의 크기를 조정할 수 있지만 KsEdit는 크기를 조정할 수 없습니다. 매크로 KsEdit는 _KsEdit 호출하여 sizeof(** PointerToPointerToItem)를 두 크기로 지정합니다.
예를 들어 생성할 때 할당자 프레이밍을 수정해야 하는 핀을 고려해 보세요. 설명자는 정적으로 코딩되고 새 핀이 이를 사용할 수 있으므로 해결 방법은 다음과 같이 핀 설명자를 수정하는 것입니다.
KsEdit(Pin, &Pin->Descriptor, Tag);
Pin->Descriptor->AllocatorFraming = NewAllocatorFraming;
KsEdit 호출은 Pin 설명>자가 Pin과 연결된 동적 메모리임을 보장합니다. 설명자 및 기타 AVStream 구조를 임의로 수정하면 바람직하지 않은 결과가 발생할 수 있습니다. 미니드라이버에서는 AVStream 구조에서 KsEdit를 사용할 때 주의해야 합니다.
KsEditSized호출은 개체가 Object-Bag>으로 대체되고 포인터가 PVOID에 대한 typecast라는 점을 제외하고 수신하는 것과 동일한 매개 변수로 _KsEdit.
_KsEdit 호출할 때 호출자는 가방과 연결된 뮤텍스를 보유해야 합니다. 자세한 내용은 AVStream의 개체 모음 및 뮤텍스를 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Microsoft Windows XP 이상 운영 체제 및 DirectX 8.0 이상 DirectX 버전에서 사용할 수 있습니다. |
대상 플랫폼 | 유니버설 |
헤더 | ks.h(Ks.h 포함) |
라이브러리 | Ks.lib |
IRQL | PASSIVE_LEVEL |