다음을 통해 공유


_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 반환합니다.

설명

KsEditKsEditSized_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