_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연결된 동적 메모리가 보장됩니다. 설명자 및 기타 AVStream 구조를 임의로 수정하면 바람직하지 않은 결과가 발생할 수 있습니다. 미니 드라이버는 AVStream 구조에서 KsEdit 사용할 때 주의를 기울여야 합니다.
KsEditSized 호출은 ObjectObject->Bag 대체되고 포인터가 PVOID에 typecast된다는 점을 제외하고 수신하는 것과 동일한 매개 변수로 _KsEdit 호출합니다.
_KsEdit호출할 때 호출자는 가방과 연결된 뮤텍스를 보유해야 합니다. 자세한 내용은 AVStream 개체 모음 및뮤텍스를 참조하세요.
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Microsoft Windows XP 이상 운영 체제 및 DirectX 8.0 이상 DirectX 버전에서 사용할 수 있습니다. |
대상 플랫폼 | 보편적 |
헤더 | ks.h(Ks.h 포함) |
라이브러리 | Ks.lib |
IRQL | PASSIVE_LEVEL |