Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Aynı anda birden çok tamamlama bağlantı noktası girdisi alır. Belirtilen tamamlama bağlantı noktasıyla ilişkili bekleyen G/Ç işlemlerinin tamamlanmasını bekler.
G/Ç tamamlama paketlerini teker teker kuyruğa almak için GetQueuedCompletionStatus işlevini kullanın.
Sözdizimi
BOOL WINAPI GetQueuedCompletionStatusEx(
_In_ HANDLE CompletionPort,
_Out_ LPOVERLAPPED_ENTRY lpCompletionPortEntries,
_In_ ULONG ulCount,
_Out_ PULONG ulNumEntriesRemoved,
_In_ DWORD dwMilliseconds,
_In_ BOOL fAlertable
);
Parametreler
Tamamlama Bağlantı Noktası[in]
Tamamlama bağlantı noktası için bir tanıtıcı. Tamamlama bağlantı noktası oluşturmak için CreateIoCompletionPort işlevini kullanın.
lpCompletionPortEntries[out]
Girişte, önceden tahsis edilmiş bir OVERLAPPED_ENTRY yapı dizisine işaret eder.
Çıktıda, girişleri tutan bir dizi OVERLAPPED_ENTRY yapı alır. Dizi öğelerinin sayısı ulNumEntriesRemoved tarafından sağlanır.
Her G/Ç sırasında aktarılan bayt sayısı, her G/Ç'nin hangi dosyada oluştuğunu gösteren tamamlama anahtarı ve her özgün G/Ç'de kullanılan çakışan yapı adresinin tümü lpCompletionPortEntries dizisinde döndürülür.
ulCount (UlCount )[in]
Kaldırılacak maksimum giriş sayısı.
ulNumEntriesKaldırıldı[out]
Gerçekte kaldırılan girdilerin sayısını alan bir değişkenin işaretçisi.
dwMilisaniye[in]
Çağıranın, tamamlama bağlantı noktasında bir tamamlama paketinin görünmesini beklemeye istekli olduğu milisaniye sayısı. Belirtilen süre içinde bir tamamlama paketi görünmezse, işlev zaman aşımına uğrar ve geri döner FALSE.
dwMillisecondsINFINITE (0xFFFFFFFF) ise, fonksiyon hiçbir zaman zaman aşımına uğramaz. dwMilliseconds sıfırsa ve kuyruğa alınacak bir G/Ç işlemi yoksa, işlev hemen zaman aşımına uğrar.
Windows XP, Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 ve Windows Server 2008 R2:dwMiliseconds değeri, düşük güç durumlarında geçirilen süreyi içerir. Örneğin, bilgisayar uyku modundayken zaman aşımı geri saymaya devam eder.
Windows 8, Windows Server 2012, Windows 8.1, Windows Server 2012 R2, Windows 10 ve Windows Server 2016:dwMiliseconds değeri, düşük güç durumlarında harcanan süreyi içermez. Örneğin, bilgisayar uyku modundayken zaman aşımı sürekli geri saymaz.
fUyarılabilir[in]
Bu parametre ise FALSE, zaman aşımı süresi geçene veya bir girdi alınana kadar işlev döndürülmez.
Parametre ise TRUE ve kullanılabilir giriş yoksa, işlev uyarılabilir bir bekleme gerçekleştirir. Sistem bir G/Ç tamamlama yordamını veya APC'yi iş parçacığına kuyruğa aldığında ve iş parçacığı işlevi yürüttüğünde iş parçacığı geri döner.
Tamamlama yordamı, belirtildiği ReadFileEx veya WriteFileEx işlevi tamamlandığında kuyruğa alınır ve çağıran iş parçacığı işlemi başlatan iş parçacığıdır. QueueUserAPC'yi çağırdığınızda bir APC kuyruğa alınır.
Dönüş değeri
Başarılı olursa sıfır TRUE olmayan, aksi takdirde sıfır FALSE döndürür.
Genişletilmiş hata bilgilerini almak için GetLastError
Açıklamalar
Bu işlev, bir iş parçacığını belirtilen tamamlama bağlantı noktasıyla ilişkilendirir. Bir iş parçacığı en fazla bir tamamlama bağlantı noktasıyla ilişkilendirilebilir.
Bu işlev, en az bir bekleyen G/Ç tamamlandığında döndürülür TRUE , ancak bir veya daha fazla G/Ç işlemi başarısız olmuş olabilir. Her bir OVERLAPPED_ENTRYlpOverlapped üyesinde yer alan duruma bakarak bunlardan hangilerinin olası başarısız G/Ç işlemlerine karşılık geldiğini belirlemek için lpCompletionPortEntries parametresinde döndürülen girişlerin listesini kontrol etmenin bu işlevin kullanıcısına bağlı olduğunu unutmayın.
Bu işlev, hiçbir G/Ç işlemi kuyruğa alınmadığında döndürülür FALSE . Bu genellikle, bu çağrıya yönelik parametreler işlenirken bir hata oluştuğu veya CompletionPort tanıtıcısının kapatıldığı veya başka bir şekilde geçersiz olduğu anlamına gelir.
GetLastError işlevi, genişletilmiş hata bilgileri sağlar.
GetQueuedCompletionStatusEx'e yapılan bir çağrı, kendisiyle ilişkili tanıtıcı kapalı olduğu için başarısız olursa, işlev geri döner FALSE ve GetLastError döndürürERROR_ABANDONED_WAIT_0.
Sunucu uygulamaları, aynı tamamlama bağlantı noktası için GetQueuedCompletionStatusEx işlevini çağıran birkaç iş parçacığına sahip olabilir. G/Ç işlemleri tamamlandığında, ilk giren ilk çıkar sırasına göre bu bağlantı noktasına kuyruğa alınır. Bir iş parçacığı bu çağrıda etkin bir şekilde bekliyorsa, kuyruğa alınan bir veya daha fazla istek yalnızca bu iş parçacığı için çağrıyı tamamlar.
G/Ç tamamlama bağlantı noktası teorisi, kullanımı ve ilişkili işlevler hakkında daha fazla bilgi için bkz: G/Ç Tamamlama Bağlantı Noktaları.
Windows 8 ve Windows Server 2012'de bu işlev aşağıdaki teknolojiler tarafından desteklenir.
| Teknoloji | Destekleniyor |
|---|---|
| Sunucu İleti Bloğu (SMB) 3.0 protokolü | Evet |
| SMB 3.0 Saydam Yük Devretme (TFO) | Evet |
| Genişleme Dosya Paylaşımları (SO) ile SMB 3.0 | Evet |
| Küme Paylaşılan Birim Dosya Sistemi (CsvFS) | Evet |
| Dayanıklı Dosya Sistemi (ReFS) | Evet |
Gereksinimler
| Gereksinim | Değer |
|---|---|
| Desteklenen en düşük düzeydeki istemci | Windows Vista [masaüstü uygulamaları | UWP uygulamaları] |
| Desteklenen en düşük sunucu | Windows Server 2008 [masaüstü uygulamaları | UWP uygulamaları] |
| Başlık |
IoAPI.h (dahil Windows.het)WinBase.h Windows Server 2008 R2, Windows 7, Windows Server 2008 ve Windows Vista'da (dahil Windows.h) |
| Kütüphane | Kernel32.lib |
| DLL | Kernel32.dll |
Ayrıca bakınız
Genel Bakış Konuları
G/Ç Tamamlama Bağlantı Noktaları
İşlevler