Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Profil API KS
KsInitializeDeviceProfile
Untuk menerbitkan profil perangkat, semua driver miniport harus menginisialisasi penyimpanan profil, untuk melakukan ini, API KS berikut harus dipanggil:
__drv_maxIRQL(PASSIVE_LEVEL)
KSDDKAPI
NTSTATUS
NTAPI
KsInitializeDeviceProfile(
__in PKSFILTERFACTORY FilterFactory
);
FilterFactory (KSFILTERFACTORY)
Ini adalah KSFILTERFACTORY yang dibuat oleh driver kamera untuk mengidentifikasi pabrik filter kamera secara unik.
Bidang ReferenceGuid dari struktur KSFILTER_DESCRIPTOR yang terkandung dalam KSFILTERFACTORY harus diatur dengan GUID unik untuk jenis filter ini. Dan bidang Flags dari KSFILTER_DESCRIPTOR memiliki bendera KSFILTER_FLAG_PRIORITIZE_REFERENCEGUID yang disetel.
Jika KSFILTERFACTORY yang disediakan tidak berisi antarmuka perangkat yang terkait dengan KSCATEGORY_VIDEO_CAMERA, panggilan API ini gagal dengan STATUS_INVALID_PARAMETER.
Untuk menghapus semua profil dari penyimpanan profil yang terkait dengan antarmuka perangkat untuk KSFILTERFACTORY ini, driver dapat memanggil KsInitializeDeviceProfile diikuti segera oleh KsPersistDeviceProfile. Ini akan menghasilkan informasi profil kosong, yang akan menghapus informasi profil dari penyimpanan profil.
KsPublishDeviceProfile
Untuk menerbitkan informasi ini, API KS baru berikut diperkenalkan:
__drv_maxIRQL(PASSIVE_LEVEL)
KSDDKAPI
NTSTATUS
NTAPI
KsPublishDeviceProfile(
__in PKSFILTERFACTORY FilterFactory,
__in PKSDEVICE_PROFILE_INFO Profile
);
API ini dipanggil berulang kali untuk setiap profil yang didukung driver kamera. Setiap panggilan mungkin memiliki serangkaian informasi konkurensi dan rentang data yang berbeda. Bidang ProfileId dari KSCAMERA_PROFILE_INFO harus unik. Jika ProfileId yang sama digunakan dan isi informasi profil berbeda, panggilan berikutnya akan menimpa informasi profil sebelumnya.
FilterFactory (KSFILTERFACTORY)
Ini adalah FilterFactory yang sama yang digunakan dalam API KsInitializeDeviceProfile.
Informasi profil Kamera hanya akan dikaitkan dengan kategori antarmuka KSCATEGORY_VIDEO_CAMERA. Setiap pabrik filter yang dibuat tanpa kategori antarmuka ini dan mencoba mendaftarkan profil Kamera akan mengakibatkan API ini mengembalikan STATUS_INVALID_PARAMETER.
Profil (KSDEVICE_PROFILE_INFO)
KSDEVICE_PROFILE_INFO adalah struktur generik yang dirancang untuk menangani informasi profil untuk berbagai jenis perangkat:
##define KSDEVICE_PROFILE_TYPE_CAMERA 0x00000001
typedef struct _KSDEVICE_PROFILE_INFO
{
UINT32 Type;
UINT32 Size;
union
{
struct
{
KSCAMERA_PROFILE_INFO Info;
UINT32 Reserved;
UINT32 ConcurrencyCount;
PKSCAMERA_PROFILE_CONCURRENCYINFO Concurrency;
} Camera;
// Add other device type specific "profiles" here.
};
} KSDEVICE_PROFILE_INFO, *PKSDEVICE_PROFILE_INFO;
Tipe
Menentukan jenis profil. Saat ini satu-satunya jenis yang ditentukan adalah KSDEVICE_PROFILE_TYPE_Camera.
Ukuran
Ini harus diatur ke struktur sizeof(KSDEVICE_PROFILE_INFO).
Camera.Info
Struktur KSCAMERA_PROFILE_INFO menentukan informasi profil Kamera.
Camera.Reserved
Tidak terpakai. Harus diatur ke 0.
Camera.ConcurrencyCount
Jumlah struktur KSCAMERA_PROFILE_CONCURRENCYINFO dalam array Concurrency. Untuk Batas Windows, ini harus kurang dari atau sama dengan 1.
Nilai 0 (dengan Camera.Concurrency diatur ke NULL), menunjukkan profil ini tidak bersamaan.
Camera.Concurrency
Array struktur KSCAMERA_PROFILE_CONCURRENCYINFO yang menjelaskan dukungan konkurensi untuk profil ini. Jika Camera.CountOfConcurrency adalah 0, parameter ini harus NULL. Jika Camera.CountOfConcurrency adalah >0, parameter ini tidak boleh NULL.
KSCAMERA_PROFILE_INFO
Struktur KSCAMERA_PROFILE_INFO digunakan untuk mengidentifikasi profil tertentu secara unik:
typedef struct _KSCAMERA_PROFILE_INFO
{
UINT32 ProfileId;
UINT32 Index;
UINT32 PinCount;
PKSCAMERA_PROFILE_PININFO Pins
} KSCAMERA_PROFILE_INFO, *PKSCAMERA_PROFILE_INFO;
ProfileId
GUID yang mewakili ID unik untuk Profil. GUID ini mungkin merupakan GUID unik yang dibuat IHV/OEM yang mewakili profil kustom atau mungkin salah satu GUID yang telah ditentukan sebelumnya yang dijelaskan di bagian 3.1.
CATATAN: Kolom ini TIDAK boleh diatur ke KSCAMERAPROFILE_Legacy. Profil Legacy tidak boleh diterbitkan oleh driver kamera. ID profil Warisan dikirim ke driver kamera selama inisialisasi Capture Engine/Media Capture jika aplikasi belum menunjukkan bahwa aplikasi tersebut dapat mendukung profil. Dalam kasus seperti itu, driver kamera harus mengembalikan perilakunya ke mode operasi Windows 8.1 dan hanya mengekspos Tipe Media Set Yang Dikurangi bersama dengan bit kemampuan KSPROPERTY_CAMERACONTROL_IMAGE_PIN_CAPABILITY_EXCLUSIVE_WITH_RECORD dan KSPROPERTY_CAMERACONTROL_IMAGE_PIN_CAPABILITY_SEQUENCE_EXCLUSIVE_WITH_RECORD yang sesuai yang menunjukkan apakah driver kamera mampu mendukung perekaman/foto dan/atau perekaman/urutan foto yang sesuai dalam Tipe Media Set Berkurang.
Indeks
Setiap profil dalam grup ProfileId tertentu harus memiliki nilai Indeks yang unik. Ini memungkinkan profil apa pun untuk perangkat diidentifikasi secara unik dengan ProfileId + Index.
PinCount
Jumlah struktur KSCAMERA_PROFILE_PININFO yang diacu oleh pin. Nilai ini harus >0.
Pin
Array struktur KSCAMERA_PROFILE_PININFO yang menentukan jenis media yang didukung pada setiap pin profil ini.
Kolom ini tidak boleh berisi NULL.
Konkurensi (KSCAMERA_PROFILE_CONCURRENCYINFO)
Saat ini, aplikasi tidak memiliki pengetahuan tentang apakah aplikasi dapat mencoba melakukan streaming dari lebih dari satu kamera sampai upaya berhasil atau gagal. Dalam kasus skenario Web Blogging, ini berarti aplikasi harus mencoba mengaktifkan kedua aliran sebelum menampilkan UI dengan elemen video gambar-dalam-gambar.
Parameter Konkurensi memberikan petunjuk kepada aplikasi bahwa kamera depan dan belakang dapat diaktifkan secara bersamaan menggunakan profil tertentu (atau kumpulan profil). Dengan pengetahuan ini, aplikasi dapat menggambar elemen UI untuk kedua aliran sebelum mengaktifkannya.
Untuk beberapa aplikasi, Konkurensi tidak akan cukup untuk menjamin operasi bersamaan. Informasi Konkurensi tidak akan mencoba menyelesaikan skenario ini. Sebagai gantinya, fitur Camera Yanking windows 8 yang ada akan dimanfaat.
Parameter Konkurensi mewakili array struktur KSCAMERA_PROFILE_CONCURRENCYINFO (yang ukuran arraynya ditentukan oleh parameter Camera.CountOfConcurrency) yang menunjukkan profil mana yang diidentifikasi dalam struktur KSCAMERA_PROFILE_INFO dapat berjalan secara bersamaan pada kamera yang berbeda.
Jika bidang Camera.CountOfConcurrency dan Camera.Concurrency masing-masing adalah 0 & NULL, itu menunjukkan ke OS bahwa profil yang ditentukan oleh KSCAMERA_PROFILE_INFO bukan profil bersamaan.
typedef struct _KSCAMERA_PROFILE_CONCURRENCYINFO
{
GUID ReferenceGuid;
UINT32 Reserved;
UINT32 ProfileCount;
PKSCAMERA_PROFILE_INFO Profiles;
} KSCAMERA_PROFILE_CONCURRENCYINFO,*PKSCAMERA_PROFILE_CONCURRENCYINFO;
ReferenceGuid
Harus diatur ke ReferenceGuid dari KSFILTER_DESCRIPTOR yang sesuai dengan perangkat lain dengan mana profil ini berjalan bersamaan.
Dicadangkan
Tidak terpakai. Harus 0.
ProfileCount
Jumlah ID profil yang terkandung dalam array Profil. Harus lebih besar dari 0.
Profil
Ini adalah array KSCAMERA_PROFILE_INFO yang dapat digunakan secara bersamaan dengan perangkat kamera lain yang ditentukan oleh ReferenceGuid.
Bidang ini tidak boleh bernilai NULL.
Pin (KSCAMERA_PROFILE_PININFO)
Untuk menentukan daftar jenis media yang tersedia untuk setiap pin, array KSCAMERA_PROFILE_PININFO harus ditentukan, ukuran array yang ditentukan oleh parameter CountOfPins.
typedef struct _KSCAMERA_PROFILE_PININFO
{
GUID PinCategory;
UINT32 Reserved;
UINT32 MediaInfoCount;
PKSCAMERA_PROFILE_MEDIAINFO MediaInfos;
} KSCAMERA_PROFILE_PININFO, *PKSCAMERA_PROFILE_PININFO;
PinCategory
Ini adalah kategori PINNAME yang sesuai dengan pin gambar Ambil, Pratinjau, atau Masih. Untuk Windows Threshold, satu-satunya kategori pin yang didukung adalah: PINNAME_VIDEO_CAPTURE, PINNAME_VIDEO_PREVIEW, PINNAME_VIDEO_STILL. Semua kategori lainnya mengakibatkan kesalahan STATUS_INVALID_PARAMETER.
Disediakan
Tidak terpakai. Harus 0.
MediaInfoCount
Ukuran array struktur KSCAMERA_PROFILE_MEDIAINFO ditentukan di bidang MediaInfos.
MediaInfo
Array struktur KSCAMERA_PROFILE_MEDIAINFO.
MediaInfos (KSCAMERA_PROFILE_MEDIAINFO)
Informasi jenis media yang relevan yang disajikan untuk setiap profil dijelaskan oleh:
##define KSCAMERAPROFILE_FLAGS_VIDEOHDR 0x0000000000000002
##define KSCAMERAPROFILE_FLAGS_VARIABLEPHOTOSEQUENCE 0x0000000000000010
typedef struct _KSCAMERA_PROFILE_MEDIAINFO
{
struct
{
UINT32 X;
UINT32 Y;
} Resolution;
struct
{
UINT32 Numerator;
UINT32 Denominator;
} MaxFrameRate;
ULONGLONG Flags;
UINT32 Data0;
UINT32 Data1;
UINT32 Data2;
UINT32 Data3;
} KSCAMERA_PROFILE_MEDIAINFO, *PKSCAMERA_PROFILE_MEDIAINFO;
Resolusi
Ukuran bingkai X (horizontal) dan Y (vertikal) dalam piksel.
MaxFrameRate
Rasio num/denom kecepatan bingkai (misalnya, 30 / 1 = 30 fps). Kecepatan bingkai ini menunjukkan kecepatan bingkai maksimum resolusi yang ditentukan dalam kondisi pencahayaan yang ideal. Kecepatan bingkai aktual mungkin lebih rendah dari nilai ini.
Untuk informasi media foto, jika urutan foto tidak dapat diaktifkan karena kendala perangkat keras untuk resolusi foto yang diberikan, kecepatan bingkai harus diatur ke 0 (num=0,denom=0). Ini menginformasikan lapisan aplikasi bahwa kontrol urutan foto akan ditolak oleh driver ketika jenis media foto tertentu dipilih.
Bendera
Dapat berupa bitwise ATAU dari satu atau lebih flag berikut:
KSCAMERAPROFILE_FLAGS_VIDEOHDR Saat bendera HDR video diatur untuk info media, untuk pengaturan media tersebut, HDR video dapat diaktifkan untuk aliran rekaman.
Bendera ini mungkin tidak diatur untuk info media pada pin foto.
KSCAMERAPROFILE_FLAGS_VARIABLEPHOTOSEQUENCE Ketika flag Urutan Foto Variabel diatur pada informasi media, dukungan VPS sudah tersedia meskipun informasi media foto tidak menyertakan kecepatan bingkai.
Jika penanda ini diatur dan frame rate bukan nol, untuk info media foto tersebut, VPS dan Urutan Foto tersedia.
Jika flag ini diatur dan frame rate adalah nol, untuk info media foto tersebut, VPS tersedia tetapi bukan Rangkaian Foto.
Jika parameter ini tidak diatur & frame rate bukan nol, untuk info media foto tersebut, VPS tidak tersedia tetapi Urutan Foto tersedia.
Jika bendera ini tidak diatur & kecepatan bingkai adalah nol, baik VPS maupun Urutan Foto tidak tersedia untuk info media tersebut.
Bendera ini hanya dapat diatur untuk info media pada pin foto. Kehadiran flag ini pada informasi media pin yang bukan foto mengakibatkan penolakan kumpulan profil.
Data0... 3
Nilai ditentukan berdasarkan Bendera. Tidak digunakan saat ini, harus diatur ke 0.
KsPersistDeviceProfile
Untuk menerapkan informasi profil ke penyimpanan persisten, API KS berikut harus dipanggil.
__drv_maxIRQL(PASSIVE_LEVEL)
KSDDKAPI
NTSTATUS
NTAPI
KsPersistDeviceProfile(
__in PKSFILTERFACTORY FilterFactory
);
FilterFactory (KSFILTERFACTORY)
Ini adalah KSFILTERFACTORY yang digunakan untuk menginisialisasi penyimpanan profil di KsInitializeDeviceProfile. Jika KsPersistDeviceProfile dipanggil tanpa terlebih dahulu menginisialisasi penyimpanan profil dengan KsInitializeDeviceProfile, panggilan ke KsPersistDeviceProfile gagal dengan STATUS_INVALID_DEVICE_REQUEST.
Selain itu, API ini mungkin juga gagal dengan STATUS_INSUFFICIENT_RESOURCE jika kolam memori halaman habis saat informasi profil sedang disimpan.
KSPROPERTY_CAMERACONTROL_EXTENDED_PROFILE
Cakupan: Versi 1
Kontrol: Filter
Jenis: Asinkron, Tidak Dapat Dibatalkan
Kontrol Properti Diperluas baru diperkenalkan agar kerangka kerja pengambilan gambar dapat memberi tahu driver kamera mana profil yang telah dipilih.
KSCAMERA_EXTENDEDPROP_HEADER
Versi
Ditentukan untuk Extended Property Control versi 1.
PinId
Harus KSCAMERA_EXTENDEDPROP_FILTERSCOPE (0xFFFFFFFF).
Ukuran
Harus berupa sizeof(KSCAMERA_EXTENDEDPROP_HEADER) + sizeof(KSCAMERA_EXTENDEDPROP_PROFILE) .
Hasil
Menunjukkan hasil kesalahan dari operasi SET terakhir. Jika tidak ada operasi SET yang terjadi, ini harus 0. 0 menunjukkan tidak ada kesalahan yang terdeteksi.
Kemampuan
Harus berupa KSCAMERA_EXTENDEDPROP_CAPS_ASYNCCONTROL . Tidak ada mode lain yang didukung.
Bendera
Harus 0.
KSCAMERA_EXTENDEDPROP_PROFILE
Payload kontrol KSPROPERTY_CAMERACONTROL_EXTENDED_PROFILE berisi KSCAMERA_EXTENDEDPROP_HEADER + KSCAMERA_EXTENDEDPROP_PROFILE.
typedef struct _KSCAMERA_EXTENDEDPROP_PROFILE
{
GUID ProfileId;
UINT32 Index;
UINT32 Reserved;
} KSCAMERA_EXTENDEDPROP_PROFILE, *PKSCAMERA_EXTENDEDPROP_PROFILE;
ProfileId
GUID yang mewakili profil yang dipilih. Jika ini KSCAMERAPROFILE_Legacy, tidak ada profil yang dipilih, driver kamera harus mengekspos Tipe Media Set Berkurang.
Jika bidang ini GUID_NULL, tidak ada profil yang dipilih, tetapi aplikasi sadar profil sehingga driver kamera harus mengekspos berbagai jenis media.
Indeks
Nilai indeks yang terkait dengan profil yang diidentifikasi.
yang Dicadangkan
Tidak terpakai. Harus 0.
Profil INF
Untuk memungkinkan fleksibilitas OEM, berdasarkan SKU yang berbeda yang dapat menggunakan driver referensi yang sama tetapi sensor yang berbeda (atau bahkan dalam kasus tingkat performa yang berbeda), profil dapat diterbitkan atau digantikan melalui bagian INF berikut.
Setiap profil, baru atau yang sudah ada, harus memiliki nilai [ProfildId GUID, Indeks] dalam string yang dibatasi titik koma yang disimpan di bawah Node Antarmuka Perangkat:
OEMCameraProfiles: REG_SZ:
KSCAMERAPROFILE_VideoRecording,0;KSCAMERAPROFILE_HighQualityPhoto,0;KSCAMERAPROFILE_BalancedVideoPhoto,0;KSCAMERAPROFILE_VideoConferencing,0;{3074C75C-1D69-4A0A-895D-EB9EFDE1CF30},0
Dalam contoh di atas, kami mengambil alih indekske-0, KSCAMERAPROFILE_VideoRecording, KSCAMERAPROFILE_HighQualityPhoto, KSCAMERAPROFILE_BalancedVideoPhoto dan KSCAMERAPROFILE_VideoConferencing bersama dengan profil kustom baru dengan ID {3074C75C-1D69-4A0A-895D-EB9EFDE1CF30}
Untuk setiap GUID profil di OEMCameraProfiles, subkunci baru harus dibuat di Simpul Antarmuka Perangkat yang cocok dengan nama yang ditentukan dalam string yang dibatasi.
Di bawah subkunci ini, OEM mungkin menunjukkan profil telah dinonaktifkan (sehingga menggantikan pengaturan yang diterbitkan oleh driver) menambahkan nilai berikut:
Disabled: REG_DWORD: 0x1
Jika OEM ingin mengubah atau menerbitkan jenis media yang tersedia daripada hanya menonaktifkan profil, maka harus dibuat subkunci lain yang sesuai dengan PinCategory dari aliran tersebut.
Misalnya, untuk menerbitkan pin Pratinjau dari 0th terindeks, KSCAMERAPROFILE_VideoRecording:
<Device Interface Node>KSCAMERAPROFILE_VideoRecording,0\PINNAME_VIDEO_PREVIEW
MediaCount: REG_DWORD: N
Media0: REG_SZ: <MediaInfo Format>
...
MediaN-1: REG_SZ: <MediaInfo Format>
Nilai registri MediaCount menunjukkan jumlah MediaInfo yang ada untuk pin ini. Setiap MediaInfo harus diberi nama entri registri "Media#" di mana \ mewakili indeks berbasis 0 jumlah N (misalnya, Media0, Media1, Media2 ...,MediaN-1).
MediaInfo yang ditentukan oleh Media0 akan diperlakukan sebagai Jenis Media Pilihan untuk profil.
Format MediaInfo di atas mengambil sintaks berikut:
MediaInfo Format = <ResolutionX>, <ResolutionY>, <MaxFrameRateNum>,<MaxFrameRateDenom>, Flags, Data0, Data1, Data2, Data3
Jadi berikut ini:
<Device Interface Node>KSCAMERAPROFILE_VideoRecording,0\PINNAME_VIDEO_PREVIEW
MediaCount: REG_DWORD: 2
Media0: REG_SZ: 1280,720,30,1,0,0,0,0,0
Media1: REG_SZ: 640,360,30,1,0,0,0,0,0
<Device Interface
Node>KSCAMERAPROFILE_VideoRecording,0\PINNAME_VIDEO_CAPTURE
MediaCount: REG_DWORD: 3
Media0: REG_SZ: 1280,720,30,1,0,0,0,0,0
Media1: REG_SZ: 1920,1080,30,1,0,0,0,0,0
Media2: REG_SZ: 640,360,30,1,0,0,0,0,0
Akan menerbitkan Profil VideoRecording dari pengaturan IHV untuk hanya mengizinkan rekaman 1080p, 720p, 360p (dengan 720p menjadi Jenis Media Pilihan) sambil hanya mengizinkan pratinjau 720p dan 360p tanpa dukungan foto.
Untuk menentukan profil kustom, sintaks yang sama dapat digunakan, tetapi dengan nama profil diganti dengan ID GUID profil kustom:
<Device Interface
Node>{3074C75C-1D69-4A0A-895D-EB9EFDE1CF30},0\PINNAME_VIDEO_PREVIEW
MediaCount: REG_DWORD: 2
Media0: REG_SZ: 1280,720,30,1,0,0,0,0,0
Media1: REG_SZ: 640,360,30,1,0,0,0,0,0
<Device Interface
Node>{3074C75C-1D69-4A0A-895D-EB9EFDE1CF30},0\PINNAME_VIDEO_CAPTURE
MediaCount: REG_DWORD: 2
Media0: REG_SZ: 1280,720,30,1,0,0,0,0,0
Media2: REG_SZ: 640,360,30,1,0,0,0,0,0
<Device Interface
Node>{3074C75C-1D69-4A0A-895D-EB9EFDE1CF30},0\PINNAME_IMAGE
MediaCount: REG_DWORD: 2
Media0: REG_SZ: 1920,1080,0,0,0,0,0,0,0
Media1: REG_SZ: 1280,720,0,0,0,0,0,0,0
Modifikasi pada registri dapat ditangani dengan cara apa pun yang cocok untuk OEM. Proses yang disarankan adalah membuat bagian AddReg ke file INF driver kamera sehingga entri registri dapat dibuat selama penginstalan kamera (dan dihapus ketika driver dihapus):
[SampleDriver.DeviceInterface.AddReg]
HKR,,"OEMCameraProfiles",0,"KSCAMERAPROFILE_VideoRecording,0",
HKR,"KSCAMERAPROFILE_VideoRecording,0\PINNAME_VIDEO_PREVIEW","MediaCount",0x00010001,2,
HKR,"KSCAMERAPROFILE_VideoRecording,0\PINNAME_VIDEO_PREVIEW","Media0",0,"1280,720,30,1,0,0,0,0,0",
HKR,"KSCAMERAPROFILE_VideoRecording,0\PINNAME_VIDEO_PREVIEW","Media1",0,"640,360,30,1,0,0,0,0,0",
…
Profil INF : Keserentakan
Untuk menerbitkan pengaturan Konkurensi profil, nilai registri berikut dapat ditambahkan:
<Device Interface Node>KSCAMERAPROFILE_VideoConferencing,0
Concurrency: REG_SZ:
{ConcurrentDeviceReferenceGUID};{ProfileID},{Index};…
ConcurrentDeviceReferenceGUID adalah ReferenceGUID dari KSFILTER_DESCRIPTOR yang terkait dengan kamera yang profil ini dapat dijalankan bersamaan.
Contoh INF
;---------------------------------------------------------------
; S t r i n g s
;---------------------------------------------------------------
[Strings]
; non-localizable
RefGUIDFrontCamera="{C3FDE193-01D1-4A78-AA0F-0D2395611C3D}"
RefGUIDRearCamera="{3E5169E8-8DB8-4951-A33F-CFF94F2C87BE}"
;---------------------------------------------------------------
; A d d R e g
;---------------------------------------------------------------
[SampleDriver.FrontCameraInterface.AddReg]
HKR,,"OEMCameraProfiles",0,"KSCAMERAPROFILE_VideoRecording;KSCAMERAPROFILE_VideoConferencing;KSCAMERAPROFILE_HighQualityPhoto;KSCAMERAPROFILE_PhotoSequence",
HKR,,"ReferenceGUID",0,%RefGUIDFrontCamera%
HKR,"KSCAMERAPROFILE_VideoRecording,0\PINNAME_VIDEO_PREVIEW","MediaCount",0x00010001,2,
HKR,"KSCAMERAPROFILE_VideoRecording,0\PINNAME_VIDEO_PREVIEW","Media0",0,"1280,720,30,1,0,0,0,0,0",
HKR,"KSCAMERAPROFILE_VideoRecording,0\PINNAME_VIDEO_PREVIEW","Media1",0,"640,360,30,1,0,0,0,0,0",
HKR,"KSCAMERAPROFILE_VideoRecording,0\PINNAME_VIDEO_CAPTURE","MediaCount",0x00010001,2,
HKR,"KSCAMERAPROFILE_VideoRecording,0\PINNAME_VIDEO_CAPTURE","Media0",0,"1280,720,30,1,0,0,0,0,0",
HKR,"KSCAMERAPROFILE_VideoRecording,0\PINNAME_VIDEO_CAPTURE","Media1",0,"640,360,30,1,0,0,0,0,0",
HKR,"KSCAMERAPROFILE_PhotoSequence,0","Disabled",0x00010001,1,
HKR,"KSCAMERAPROFILE_HighQualityPhoto,0\PINNAME_VIDEO_PREVIEW","Media0",0,"1280,720,30,1,0,0,0,0,0",
HKR,"KSCAMERAPROFILE_HighQualityPhoto,0\PINNAME_VIDEO_PREVIEW","Media1",0,"640,360,30,1,0,0,0,0,0",
HKR,"KSCAMERAPROFILE_HighQualityPhoto,0\PINNAME_IMAGE","MediaCount",0x00010001,2,
HKR,"KSCAMERAPROFILE_HighQualityPhoto,0\PINNAME_IMAGE","Media0",0,"1920,1080,0,0,0,0,0,0,0",
HKR,"KSCAMERAPROFILE_HighQualityPhoto,0\PINNAME_IMAGE","Media1",0,"1280,720,5,1,0,0,0,0,0",
HKR,"KSCAMERAPROFILE_VideoConferencing,0\PINNAME_VIDEO_PREVIEW","MediaCount",0x00010001,2,
HKR,"KSCAMERAPROFILE_VideoConferencing,0\PINNAME_VIDEO_PREVIEW","Media0",0,"1280,720,30,1,0,0,0,0,0",
HKR,"KSCAMERAPROFILE_VideoConferencing,0\PINNAME_VIDEO_PREVIEW","Media1",0,"640,360,30,1,0,0,0,0,0",
HKR,"KSCAMERAPROFILE_VideoConferencing,0\PINNAME_VIDEO_CAPTURE","MediaCount",0x00010001,2,
HKR,"KSCAMERAPROFILE_VideoConferencing,0\PINNAME_VIDEO_CAPTURE","Media0",0,"1280,720,30,1,0,0,0,0,0",
HKR,"KSCAMERAPROFILE_VideoConferencing,0\PINNAME_VIDEO_CAPTURE","Media1",0,"640,360,30,1,0,0,0,0,0",
HKR,"KSCAMERAPROFILE_VideoConferencing,0","Concurrency",0,"%RefGUIDRearCamera%;KSCAMERAPROFILE_VideoConferencing,0",
Bagian sampel INF di atas menunjukkan cara OEM dapat menerbitkan (atau menggantikan pengaturan IHV default) untuk profil. Dalam contoh di atas, VideoRecording dengan indeks ke-0 untuk kamera depan dibatasi hanya pada 720p30 untuk pratinjau dan perekaman, serta tidak mendukung foto.
PhotoSequence untuk kamera depan juga dinonaktifkan (mengambil alih profil IHV yang diterbitkan).
Profil HighQualityPhoto dibatasi hingga pratinjau 720p, dengan pengambilan gambar tunggal 1080p atau foto 720p pada 5 fps.
Profil VideoConferencing dibatasi hanya hingga 720p30 untuk pratinjau dan pengambilan sambil menunjukkan bahwa profil tersebut dapat dijalankan secara bersamaan dengan profil VideoConferencing kamera belakang (profil VideoConferencing kamera belakang tidak ditampilkan di INF—jika tidak ditentukan dalam INF, profil VideoConferencing kamera belakang menggunakan apa pun yang diterbitkan IHV atau jika itu tidak ada, profil dinonaktifkan karena penggantian di atas tidak valid).
Profil API INF vs. KS
Informasi profil INF akan selalu menggantikan informasi profil yang diterbitkan oleh API KS. Prioritasnya adalah pada tingkat per profil.
Jika driver menerbitkan profil VideoRecording, HighQualityPhoto, dan VideoConferencing menggunakan API KS dan pengaturan INF berisi entri profil untuk HighQualityPhoto, hanya profil HighQualityPhoto yang diterbitkan oleh driver yang akan ditimpa dengan informasi profil dari INF.
Ini dilakukan dengan harapan bahwa driver referensi tunggal (diimplementasikan oleh IHV) dapat menerbitkan serangkaian profil yang tersedia untuk sensor tertentu, tetapi OEM dapat memutuskan untuk memilih sensor yang berbeda dan/atau karena faktor formulir akhir, dapat memilih untuk mengubah/membatasi profil yang tersedia.
Profil INF juga memungkinkan OEM untuk, tanpa mengubah biner driver, untuk menerbitkan profil untuk driver Windows 8.1 yang ada hanya dengan memperbarui INF mereka.